"Você pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direção".Steve Jobs
lembro que essa foi a primeira quando Emmanuel sugeriu utilizarmos(rs...).
$arquivo = fopen(“inexistente.txt”,”r”);
Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:
No such file or directory in www\tutorial\trat_eror.php on line 2
If(!file_exists(“inexiste.txt”)){die(“Aquivo não existe!”);}else{$arquivo = fopen(“inexistente.txt”,”r”);}
Certo, entendemos porque implementar esta checagem, mas o tratamento de exceção requer um log para verificar a persistência do erro, mas agora vamos sofisticar um pouco mais (rs...).
Para disparar uma exceção utilizamos a palavra throw, vamos usar nosso exemplo acima.
Class lerArquivo {Public function abrir ($arquivo){if (!file_exists(“$arquivo”)){
throw new Exception(“Arquivo não encontrado”);
}}
}$abre = new lerArquivo;
$abre->abrir(“inexistente.txt”);
Class lerArquivo {Public function abrir ($arquivo){if (!file_exists(“$arquivo”)){
throw new Exception(“Arquivo não encontrado”);
}}
}try{$abre = new lerArquivo;
$abre->abrir(“inexistente.txt”);}catch (Exception $e){$open_log = fopen(“log_error.log”,”w”);fwrite($e->getMessage() );$close_log = ($open_log);}
existem outros métodos disponíveis e que detalharei mais abaixo.
- getMessage: Retorna a mensagem de erro;
- getCode: Retorna o código de erro;
- getFile: Retorna o arquivo do qual ocorreu o erro;
- getLine: Retorna a linha na qual ocorreu o erro;
- getTrace: Retorna um array com todos os métodos e arquivos chamados até o erro ocorrer;
- getTraceAsString: Retorna o array usado em getTrace como uma string.
E existe a documentação PHP para ser consultada quando precisar, devemos primar pela qualidade do código estude e descubra qual é o melhor método para realizar suas tarefas,