- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:例外処理の書き方がよく分かりません。)
例外処理の書き方が分からない
このQ&Aのポイント
- 普通に書くと(2)のところでエラーが出てしまうと思うのですが、こういった場合の例外処理の書き方が分かりません。
- (1)の前に、if(s2.length == 1) return; を書けば、エラーにはならないと思います。
- try catchやthrowsするのが普通のような気がしており、書き方が分かりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(2)が無いので意味不明です ……というのはさておき、通常起こりうるべき現象として条件分岐でエラー発生を避けられるなら、それはそういう方向で処理を記述していくのが基本だと思いますが、その判定に来るのが本来想定し得ない例外的な状況であれば例外処理で処理するのも手です。 例外処理はtry~catch構文で記述されますが、例外時の処理であるcatchはtryブロック中でthrowされた例外を受け取って、それに応じた処理を行います。したがって、例外処理をcatchブロックで行うには、tryブロック中で例外がthrowされている必要があります。 一般的なパッケージ提供のメソッド呼び出し時はメソッド中でそれぞれの例外がthrowされているので、呼び出し側はcatch時にその例外を指定すれば良いだけですが、自分の処理中で例外を発生させるときは自分で例外をthrowしなければなりません。 try { … if(s2.length == 1) { throw new hogehogeException; // 例外発生 } s2[1].length();//(1) … } chatch (hogehogeException e) { // 例外処理 … }