根据PHP Manual: 内部PHP函数主要使用错误报告,只有现代面向对象的扩展使用异常。但是,错误可以简单地转换为具有ErrorException的异常
ErrorException中提供的示例:
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
似乎允许使用Exceptions而不是默认的错误报告。我的问题是,这是鼓励还是我们的选择?
此外,这是一个更好的做法,像上面的例子一样单独使用Exception,或者同时使用Exception(set_exception_handler)和Error reporting(set_error_handler)?
答案 0 :(得分:9)
简答:不。这是两个不同的功能。
答案很长:这并不是要取代而是要利用。 set_exception_handler
Docs用于例外,set_error_handler
Docs用于出错。那是两双不同的鞋子。
参见:
答案 1 :(得分:0)
否,未捕获的任何异常都将导致致命错误。如果您要对未捕获在捕获块中的异常做出优雅的响应,则需要将一个函数设置为默认的异常处理程序。 为此,您可以使用 set_exception_handler()函数,该函数接受callable作为其参数。您的脚本将在可调用对象执行后终止。 函数 restore_exception_handler()将异常处理程序恢复为其先前的值。