この質問は、例外がスローされない場合にのみ、try ブロックの外側でコードを実行する最良の方法に関するものです。
try {
//experiment
//can't put code after experiment because I don't want a possible exception from this code to be caught by the following catch. It needs to bubble.
} catch(Exception $explosion) {
//contain the blast
} finally {
//cleanup
//this is not the answer since it executes even if an exception occured
//finally will be available in php 5.5
} else {
//code to be executed only if no exception was thrown
//but no try ... else block exists in php
}
これは、質問php try .. elseに応じて@webbiedaveによって提案された方法です。余分な変数を使用しているため、満足のいくものではありません。$caught
$caught = false;
try {
// something
} catch (Exception $e) {
$caught = true;
}
if (!$caught) {
}
それでは、追加の変数を必要とせずにこれを達成するためのより良い (または最良の) 方法は何でしょうか?