「複数の 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
についてのコードを書くみたいな感じになるのですか?
また、どのようなコードを書くのでしょう?
長文になってしまい申し訳ないです。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?