PHP异常自定义消息


PHP exception custom message

我有一个抽象类包装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方法是"正确"的方法。