如何正确设置PHP set_error_handler

时间:2016-11-13 13:52:28

标签: php error-handling custom-error-handling

你能帮我正确设置php set_error_handler 吗?我需要处理将php 警告作为异常的代码。但我不知道如何正确地做到这一点。现在我有这个代码,我认为这是不正确的。

n

正如我在documentation中看到的,它需要更复杂的解决方案。但我对所有这些常数都很困惑。 有没有办法以一些优雅的方式设置它,不会分别设置所有常量。 我的意思是:

set_error_handler( function( $errno, $errstr, $errfile, $errline, array $errcontext )
{
    throw new \Exception( $errstr, $errno );
});
$mailer->send( $mail );
restore_error_handler(); 

那么如何以优雅的方式将PHP警告包含在Exception中。 THX。

1 个答案:

答案 0 :(得分:0)

所以在我的情况下,必须为errno提供一个条件,它必须返回true。

set_error_handler( function( $errno, $errstr, $errfile, $errline, array $errcontext )
{
    // Cause Php does not catch stream_socket_client warnings message.
    if ( $errno == E_WARNING ) throw new \Exception( $errstr, $errno ); 
    // Is necessary to handle other errors by default handler.
    return true; 
});