0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(java gold) 例外とアサーション

Posted at

try-with-resouces(JavaSE 7~)

  • try句で宣言したリソースは自動でクローズされる
    • リソースはAutoCloseableである必要がある
      • I/Oストリーム,StreamAPI,JDBC API(Connection, Statement)
    • リソースは実質的にfinalも指定可能
  • リソースをクローズするタイミング
    • finally句の処理前
    • 複数リソースの場合はオープンしたときの逆順でクローズ

実質的 final で思い出したいもの
• try-with-resources (Java SE 9)
• 無名クラス (Java SE 8)
• ラムダ式 (Java SE 8)

これらのコードからアクセス可能な変数は実質的
final である必要がある。(実質的 final でなければ
コンパイルエラーになる)

class MyResource implements AutoCloseable {
    @Override
    public void close() throws Exception {
        System.out.println("MyResource#closed()");
    }
}

java.io.Closeable インタフェース (AutoCloseable のサブタイプ)
を実装する場合、オーバーライドするメソッドは

public void close() throws IOException { }

アサーション

  • 処理中で成立すべき条件を検証し条件違反を自動で検知する仕組み
  • アサーションの構文
assert exp1;
assert exp1 : exp2;

exp1 ... 検証されるべき条件
exp2 ... 検証エラー時のメッセージ
(AssertionErrorのコンストラクタ引数)

*アサーションの有効化

$ java ea Test
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?