Especifique página / linha quando jogando die ()?
Pergunta
Eu estou usando PHP 4, a única maneira que eu conheço para causar um erro e parar tudo está chamando die (). Mas no caso de eu correr para o erro mais tarde e não me lembro onde sua vinda de eu gostaria de especificar o número de página e linha que o die () ocorreu no dia (como outros erros php fazer). Existe uma maneira de fazer isso?
Obrigado!
Solução
Você deve olhar para as constantes mágicas .
echo __LINE__; // Line number
Você também pode executar error_log () para enviar erros silenciosamente para o log.
Outras dicas
Eu acho que você deve usar trigger_error () para gerar um E_USER_ERROR ou E_USER_WARNING. Isto permite-lhe controlar o comportamento em detalhe. Por exemplo, você pode especificar se as mensagens devem ser mostrados em tudo usando error_reporting () , ou lidar com a E_USER_WARNING :. s explicitamente usando set_error_handler ()
A maneira mais simples é usar:
echo __FILE__ . ": line " . __LINE__;
die();
Se você fosse usar PHP5, você também pode usar Exceções:
throw new Exception("My error message!");
O rastreamento de pilha vai revelar toda a pilha de chamadas e a linha este foi jogado diante.
(EDIT: Graças a [@ John Isaacs] e [@Emil H] por me informar que as excepções não foram adicionados para PHP até PHP5)
Além de @Jukka Dahlbom e @ sugestões de Ólafur Waage que você pode também considerar o uso debug_backtrace()
.
Melhor utilização error_log()
para relatar um erro e debug_backtrace()
para depuração. Você também pode escrever sua própria função de tratamento de erros (ver set_error_handler()
) para combinar as duas coisas.