【问题标题】:Custom messages for php exception handlingphp异常处理的自定义消息
【发布时间】:2013-07-05 10:55:12
【问题描述】:

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

【问题讨论】:

    标签: php arrays exception messages


    【解决方案1】:

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

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

    关于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.找到

    【讨论】:

    • 嗯,这似乎涵盖了我的大部分意图。我只是试图实现,用键调用的数组元素替换书面消息。
    • 最多?它没有涵盖什么?最好使用代码而不是搜索字符串。这些代码可能是消息数组的键。就是这样。
    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 2019-01-02
    • 2010-09-27
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多