【问题标题】:PHP exception custom messagePHP异常自定义消息
【发布时间】:2012-01-17 16:14:24
【问题描述】:

我有一个包装 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 第 69 行

如何摆脱“致命错误:未捕获...”部分?

非常感谢。

编辑:

我找到了答案,使用set_exception_handler() 将覆盖未捕获的异常。并允许提供回调函数

【问题讨论】:

  • 您发布的代码几乎无关紧要。你包括try and catch吗?阅读更多here。另外,谷歌错误消息。
  • 你有没有尝试/抓住你需要的部分?
  • 你是在投掷而不是追赶,所以它是未捕获...

标签: php exception


【解决方案1】:

产生“致命错误”部分是因为异常是在try-catch语句之外抛出的,最终被php错误处理程序捕获。未捕获的异常总是致命的。

尝试使用 try-catch 语句包围生成异常的代码,例如:

try{
    $foo->bar();
catch(UserException $ex){
    // Do something with the exception.
}

您也可以创建自己的错误处理程序 --> Linky

但是 try-catch 方法是“正确”的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多