обработка ошибок — Как правильно установить PHP set_error_handler

Можете ли вы помочь мне, пожалуйста, установить PHP set_error_handler правильно? Мне нужно обработать код, который бросает PHP предупреждение как исключение. Но я не знаю, как это сделать правильно. Теперь у меня есть этот код, который я считаю не правильным.

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

Как я видел в документация это нуждается в более сложном решении. Но я немного запутался во всех этих константах.
Есть ли способ установить его каким-нибудь элегантным способом, который не будет устанавливать все константы отдельно.
Я имею в виду что-то вроде:

function( $errno, $errstr, $errfile, $errline, array $errcontext )
{
if( $errno >= E_USER_WARNING ) throw new \Exception( $errstr, $errno );
});

Итак, как включить php-предупреждения в Exception некоторым элегантным способом. Спасибо.

1

Решение

Так что в моем случае должно быть условие для 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;
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]