この記事について
OracleJavaSE11 goldを勉強していた時になかなか覚えられないな〜っとなっていた内容を毎回見ることができるようにこちらの書籍で勉強していた時のまとめたものです!
おすすめ書籍(勉強開始時点の書籍最新版を購入しましょう)
各カテゴリごとでまとめていますので隙間時間に見てみてください。
例外処理
マルチキャッチ機能
複数の例外を合わせることができる
継承関係のある例外処理はあわせて記述できない
catch(aexception |bexception e)
例外は最初にスローされたものが表示され、あとのものは内包される
Throwble
サブクラスにerrorとexceptionクラスを持っている
独自のクラスを定義する時はexceptionを継承する。exceptionであればよくサブクラスでも構わない
getSuppressed()
内包された例外をThrowble型の配列で返す
try-with-resourses
リソースの閉じ忘れを防ぐためのものでありcatchとfinally区がなくても記述可能
()のなかで扱えるもの
実質的finalであって、以下のインタフェースを実装したclose()をもったもの
java.lang.autocloseable
exceptionを返す、closeableのスーパーインタフェース
java.io.closeable
ioexceptionを返す
トライ文の閉じる順番
1.リソース(()の逆順で)
2.catch(例外処理が発生した場合)
3.finally
アサーション
プログラムのデバッグをする時に使用する機能
メソッド単位で確認すべきポイント
Dbc(契約による設計)より引用
事前条件
メソッドを呼び出す側が呼び出す前の条件を満たしているか
不変条件
メソッドを呼び出される側が呼び出される前の条件を満たしているか
事後条件
メソッドが実行された結果が期待していた通りに動作したのか
使用例
nameがnullなら文字列をもったassertionErrorをスローする
論理演算は正しい方を記述するため注意
assert name != null : "name is null"
アサーションを有効にするオプション
Java -ea xxx