我对整个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块内结束操作是否可以?我是否会遇到一个错误,其中返回被忽略(或被视为异常?)并且代码会继续?我再次对此非常陌生。
答案 0 :(得分:1)
是的,这是编写该代码的完美有效方式。
在控制退出try
或catch
块之后,代码将继续运行的一种情况是在PHP 5.5中,它最终采用了来自其他语言的finally
块,并且可以是用于运行必须始终在try
块之后执行的清理代码,无论是否抛出异常。
但你可能不会使用5.5。
答案 1 :(得分:1)
是的,没关系。如果由于任何原因Redirect :: back或with_message方法引发异常,您将返回错误消息