13章は例外です。
・例外として投げることができるクラスはThrowableの拡張クラスであり、ErrorとExceptionがあり、ExceptionはさらにRuntimeExceptionとそれ以外がある。
・Errorは処理継続できない時。
・この内、それ以外だけがコンパイラによって前もってチェックされる。
・コンパイラによって前もってチェックされる例外は、メソッド内のcatch節で処理するか、
型 メソッド名(引数の並び) throws XXException {
...
throw XXException();
...
}
と書く。
・前もってチェックされない例外とは、いつでもどこでも起こりうるのでチェックしていられないということ。
・FileNotFoundExceptionはRuntimeExceptionではない。ファイルがないのは実行してみないと分からないが、実行する前から起こりうることが分かるという解釈をとる。
・try ... catch ... finally ではtry節内でreturnしたとしてもfinally節は実行される。
・finally節内でreturnしてはならない。
例外という仕組みのありがたみがまだピンと来ていません。
・例外として投げることができるクラスはThrowableの拡張クラスであり、ErrorとExceptionがあり、ExceptionはさらにRuntimeExceptionとそれ以外がある。
・Errorは処理継続できない時。
・この内、それ以外だけがコンパイラによって前もってチェックされる。
・コンパイラによって前もってチェックされる例外は、メソッド内のcatch節で処理するか、
型 メソッド名(引数の並び) throws XXException {
...
throw XXException();
...
}
と書く。
・前もってチェックされない例外とは、いつでもどこでも起こりうるのでチェックしていられないということ。
・FileNotFoundExceptionはRuntimeExceptionではない。ファイルがないのは実行してみないと分からないが、実行する前から起こりうることが分かるという解釈をとる。
・try ... catch ... finally ではtry節内でreturnしたとしてもfinally節は実行される。
・finally節内でreturnしてはならない。
例外という仕組みのありがたみがまだピンと来ていません。