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 ブロック内で操作を終了しても大丈夫ですか? return が無視されて (または例外と見なされて)、コードが続行されるというエラーが発生することはありますか? 繰り返しますが、私はこれに非常に慣れていません。

4

2 に答える 2

1

はい、それはそのコードを書くための完全に有効な方法です。

tryコントロールがorブロックを終了した後もコードが実行され続ける 1 つのケースはcatchPHP 5.5 で、最終的に他の言語からブロックを採用し、ブロックがfinally終了した後に常に実行する必要があるクリーンアップ コードを実行するために使用できます。try例外がスローされました。

しかし、おそらく 5.5 を使用していないでしょう。

于 2013-06-22T00:46:59.377 に答える
1

はい、大丈夫です。何らかの理由で Redirect::back または with_message メソッドが例外を発生させた場合、代わりにエラー メッセージが返されます。

于 2013-06-22T00:51:23.973 に答える