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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top