2

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

1 回答 1

0

我不知道你想要达到什么目标,但你应该记住,应该明智地使用 try, catch。它应该仅用于特殊情况。如果您不以这种方式使用它们,那么它就是 GOTO 代码。

关于异常,请记住您可以扩展 Exception 类并制作自己的异常并在多个 catch 块中捕获它们,还有 finally 块。

关于异常的构造函数。它有第二个参数,$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 后将停止执行。

考虑使用它。有很多东西可以在手册中找到。

于 2013-07-08T07:28:13.650 回答