用于php异常处理的自定义消息

时间:2013-07-08 07:21:33

标签: php arrays exception messages

我正在使用带有$ 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);
}

1 个答案:

答案 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.

中可以找到很多东西