我有一个抽象类包装PHP异常:
abstract class MyException extends Exception
{
public function __construct($message, $code = 0, Exception $previous = null)
{
parent::__construct($message, (int) $code, $previous);
}
}
然后我有其他类,如:
class UserException extends MyException
{
public function __toString()
{
return parent::getMessage();
}
}
当执行throw new UserException('User does not exist');
它不仅显示了我定义的消息。它表明:
致命错误:未捕获用户不存在'path'ClassTest.php on line 69
我如何摆脱"致命错误:未捕获…"部分?
谢谢你。
编辑:我找到了答案,使用set_exception_handler()
将覆盖未捕获的异常。并允许提供一个回调函数
"fatal error"部分是由于在try-catch语句之外抛出异常而产生的,并且最终被php错误处理程序捕获。未捕获的异常总是致命的。
尝试用Try -catch语句包围生成异常的代码,如:
try{
$foo->bar();
catch(UserException $ex){
// Do something with the exception.
}
或者你也可以创建自己的错误处理程序——> link。
但是try-catch方法是"正确"的方法。