1. ホーム
  2. java

[解決済み] catch "なしで "try-finally "するのは意味があるのか?

2022-05-26 20:07:58

質問

このようなコードを見かけました。

    try
    {
        db.store(mydata);
    }
    finally
    {
        db.cleanup();
    }

私は try には catch ?

なぜこのコードはこのようにするのでしょうか?

どのように解決するのですか?

リソースを適切にクリーンアップできるようにしながら、現在実行中のメソッドに例外を投げさせたい場合に有効です。以下は、呼び出し側のメソッドから例外を処理する具体例です。

public void yourOtherMethod() {
    try {
        yourMethod();
    } catch (YourException ex) {
        // handle exception
    }
}    

public void yourMethod() throws YourException {
    try {
        db.store(mydata);
    } finally {
        db.cleanup();
    }
}