PHP异常自定义消息
我有一个包装PHP异常的抽象类:PHP异常自定义消息,php,exception,Php,Exception,我有一个包装PHP异常的抽象类: abstract class MyException extends Exception { public function __construct($message, $code = 0, Exception $previous = null) { parent::__construct($message, (int) $code, $previous); } } 我还有其他课程,比如: class UserE
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();
}
}
当尝试抛出一个错误时,执行抛出新的UserException('用户不存在')代码>
它不仅显示我定义的消息。它表明:
致命错误:未捕获的用户不存在,已抛出
\第69行的path\ClassTest.php
我如何摆脱“致命错误:未捕获…”部分
非常感谢
编辑:
我找到了答案,使用set\u exception\u handler()
将覆盖未捕获的异常。并允许提供回调函数生成“致命错误”部分,因为异常在try-catch语句外部抛出,最终被php错误处理程序捕获。未捕获的异常总是致命的
尝试用Try-catch语句包围生成异常的代码,如:
try{
$foo->bar();
catch(UserException $ex){
// Do something with the exception.
}
或者,您可以创建自己的错误处理程序-->
但是try-catch方法是“正确”的方法。您发布的代码几乎不相关。你是不是包括了“捉迷藏”?阅读更多。另外,用谷歌搜索错误信息。你有没有在你需要的部分周围设置try/catch?你正在投掷而没有捕获,因此它是未捕获的。。。