了解try catch块

时间:2013-06-22 00:42:50

标签: php try-catch

我对整个try catch块感到困惑。我理解如果抛出异常它执行catch块,但是我有一个关于在try块中使用return的问题。

try {

    //other logic is here

    //this is in laravel and sends the user back and should stop operation
    if (foo != bar) {
       return Redirect::back()->with_message('This auction is closed.', 'error');
    }
} catch (Exception $e) {
    return $e->getMessage();
}

所以我的问题是:在try块内结束操作是否可以?我是否会遇到一个错误,其中返回被忽略(或被视为异常?)并且代码会继续?我再次对此非常陌生。

2 个答案:

答案 0 :(得分:1)

是的,这是编写该代码的完美有效方式。

在控制退出trycatch块之后,代码将继续运行的一种情况是在PHP 5.5中,它最终采用了来自其他语言的finally块,并且可以是用于运行必须始终在try块之后执行的清理代码,无论是否抛出异常。

但你可能不会使用5.5。

答案 1 :(得分:1)

是的,没关系。如果由于任何原因Redirect :: back或with_message方法引发异常,您将返回错误消息