我正在使用带有$ errmsg数组的外部文件来显示错误,例如:
'app_init' => 'Cannot initialize application',
使用条件,我调用函数显示失败时的消息:
if(!$condition)
{
$arraywithmessages->functionforfiltering($err,'app_init',$aim);
}
...其中$ err是消息数组,$ aim是发布错误的预定义方法(电子邮件,视图等...)
现在我想使用异常处理,但我不知道从哪里开始。有人可以帮忙吗?这似乎不起作用:
try {
if (!$condition) {
throw new Exception('app_init');
}
// continue
} catch (Exception $e) {
$arraywithmessages->functionforfiltering($err,$e->getMessage(),$aim);
}
答案 0 :(得分:0)
我不知道你想要什么,但你应该记住,尝试,应该明智地使用catch。它应该仅用于特殊情况。如果您不以这种方式使用它们,那么它是GOTO代码。
关于异常,请记住,你可以扩展Exception类并创建自己的异常并在多个catch块中捕获它们,最后也会阻塞。
关于Exception的构造函数。它有第二个参数,$code
你可以使用它来显示正确的信息。
$err = array(0x1 => 'my error app init');
try {
if (!$condition) {
throw new Exception('app_init', 0x1);
}
// continue
} catch (Exception $e) {
echo $err[$e->getCode()]; //it shouldn't be only echo it should do some tries to fix the code close streams etc. not just echo.
}
还有功能
set_exception_handler().
其中:
如果未在try / catch块中捕获异常,则设置默认异常处理程序。调用exception_handler后执行将停止。
考虑使用它。在manual.
中可以找到很多东西