0

我对整个 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 块内结束操作吗?我是否会遇到返回被忽略(或被认为是异常?)并且代码继续的错误?同样,我对此很陌生。

4

2 回答 2

1

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

于 2013-06-22T00:51:23.973 回答
1

是的,这是编写该代码的一种完全有效的方式。

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

但是您可能没有使用 5.5。

于 2013-06-22T00:46:59.377 回答