【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
「複数の Exception を処理するにはどうしたらいいですか?」という質問を拝見させてもらったのですが以下のコードがあまり理解できなく、質問させてもらいました。
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 のインスタンスができる。
try {throw new MyException();}
MyException
それを
catch (MyOtherException $e) { echo "MyOtherException" . PHP_EOL; } catch (MyException $e) { echo "MyException" . PHP_EOL; }
で catch して、今回は MyException のインスタンスなので
catch
catch (MyException $e) { echo "MyException" . PHP_EOL; }
の処理がされる。
同様に try {throw new MyOtherException();} も処理される。 こんな感じで自分は考えています。
try {throw new MyOtherException();}
【わからないこと】
ドットインストールさんの質問に対する回答に
複数の Exception を別の方法で処理したいときは、 catch を複数回書くことができます。例えば、このようなコードになりますね。
とありましたが、仮に 2 つの Exception があったとしたら、class MyException extends Exception { }、class MyOtherException extends Exception { } の {} 内にそれぞれの Exception についてのコードを書くみたいな感じになるのですか?
class MyException extends Exception { }
class MyOtherException extends Exception { }
{}
また、どのようなコードを書くのでしょう?
長文になってしまい申し訳ないです。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
「複数の
Exceptionを処理するにはどうしたらいいですか?」という質問を拝見させてもらったのですが以下のコードがあまり理解できなく、質問させてもらいました。今考えていることと、わからないことを伝えていきたいと思います。
【考えていること】
実行されると
try {throw new MyException();}によってまずはMyExceptionのインスタンスができる。それを
で
catchして、今回はMyExceptionのインスタンスなのでの処理がされる。
同様に
try {throw new MyOtherException();}も処理される。こんな感じで自分は考えています。
【わからないこと】
ドットインストールさんの質問に対する回答に
とありましたが、仮に 2 つの
Exceptionがあったとしたら、class MyException extends Exception { }、class MyOtherException extends Exception { }の{}内にそれぞれのExceptionについてのコードを書くみたいな感じになるのですか?また、どのようなコードを書くのでしょう?
長文になってしまい申し訳ないです。