回答編集履歴
1
質問趣旨を勘違いしていたので修正
test
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
-
|
1
|
+
IOExceptionは**検査例外**なので、どこかでキャッチするかメソッドでスロー宣言しないとコンパイルエラーになります。
|
2
2
|
|
3
|
+
裏を返せば、検査例外はどこかでスローするかスロー宣言しているメソッドを使うかしない限り、絶対にその例外が発生しません。なのにその例外のキャッチを用意しても、絶対に使われない**デッドコード**になるのです。
|
4
|
+
|
3
|
-
IOExceptionは**検査例外**
|
5
|
+
一方、ArrayIndexOutOfBoundsExceptionは**非検査例外**で、キャッチやスロー宣言が義務付けられていません。つまり、**どこからでも発生する可能性があります。**だから、それをキャッチするコードを書いても、絶対に到達しないとは言い切れないのです。
|