2016-11-13 8 views
1

PHP set_error_handler을 올바르게 설정하십시오. 예외 코드으로 PHP 을 던지는 코드를 처리해야합니다. 그러나 나는 그것을 올바르게하는 방법을 모른다. 지금 나는이 코드를 가지고 있는데, 나는 올바르지 않다고 생각한다.PHP set_error_handler를 올바르게 설정하는 방법

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

나는 documentation에서 보았 듯이 더 복잡한 솔루션이 필요합니다. 그러나 나는 모든 상수에 대해 거의 혼란 스럽다. 거기에 모든 상수를 별도로 설정하지 않는 우아한 방법으로 설정하는 방법이 있습니까? 내가 좋아하는 뭔가를 의미 :

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

그래서 섬세한 방법으로 예외에 PHP는 경고를 포함시키는 방법. 고마워.

답변

0

그래서 제 경우에는 bee 조건을 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; 
});