例外をキャッチする try~catch
スローされた例外はどこでキャッチされるのか?
以下のサンプルコードをもとに解説
#サンプルコード
class A
try{ //クラスBのメソッドbを実行 //a① } catch (ErrorException1 $e) { //a② } catch (ErrorException2 $e) { //a③ } //a④
class B
function b() { //b① try{ //b② } catch (ErrorException1 $e) { //b③ } catch (ErrorException2 $e) { //b④ } //b⑤ }
b①でErrorException1、もしくはErrorException2が発生した場合
a①、もしくはa②が実行され、a③の処理に続く。
b②でErrorException1、もしくはErrorException2が発生した場合
b③、もしくはb④が実行され、b⑤の処理が行われ、a④へと続く。