「複数の Exception を処理するにはどうしたらいいですか?」という質問を拝見させてもらったのですが以下のコードがあまり理解できなく、質問させてもらいました。
<?php
class MyException extends Exception { }
class MyOtherException extends Exception { }
try {
throw new MyException();
} catch (MyOtherException $e) {
echo "MyOtherException" . PHP_EOL;
} catch (MyException $e) {
echo "MyException" . PHP_EOL;
}
try {
throw new MyOtherException();
} catch (MyException $e) {
echo "MyException" . PHP_EOL;
} catch (MyOtherException $e) {
echo "MyOtherException" . PHP_EOL;
}
今考えていることと、わからないことを伝えていきたいと思います。
【考えていること】
実行されると try {throw new MyException();} によってまずは MyException のインスタンスができる。
それを
catch (MyOtherException $e) {
echo "MyOtherException" . PHP_EOL;
} catch (MyException $e) {
echo "MyException" . PHP_EOL;
}
で catch して、今回は MyException のインスタンスなので
catch (MyException $e) {
echo "MyException" . PHP_EOL;
}
の処理がされる。
同様に try {throw new MyOtherException();} も処理される。
こんな感じで自分は考えています。
【わからないこと】
ドットインストールさんの質問に対する回答に
複数の
Exceptionを別の方法で処理したいときは、catchを複数回書くことができます。例えば、このようなコードになりますね。
とありましたが、仮に 2 つの Exception があったとしたら、class MyException extends Exception { }、class MyOtherException extends Exception { } の {} 内にそれぞれの Exception についてのコードを書くみたいな感じになるのですか?
また、どのようなコードを書くのでしょう?
長文になってしまい申し訳ないです。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?