Javaの「Try-With-Resources」ステートメントの使用方法と例


まず、Try-With-Resourcesステートメントの基本的な構文を見てみましょう。

try (リソースの初期化) {
    // リソースを使用するコード
} catch (例外クラス1 変数名1) {
    // 例外処理1
} catch (例外クラス2 変数名2) {
    // 例外処理2
} finally {
    // リソースの解放
}

この構文では、tryブロックの直前にリソースの初期化を行います。リソースは通常、ファイルやデータベース接続などの外部リソースです。リソースの初期化が行われると、tryブロック内でそのリソースを使用することができます。

tryブロック内で例外が発生した場合、例外に応じたcatchブロックが実行されます。例外が発生しなかった場合は、catchブロックはスキップされます。

finallyブロックでは、リソースの解放を行います。このブロックは例外の有無に関係なく必ず実行されるため、リソースの解放漏れを防ぐことができます。

以下に、具体的なコード例を示します。

try (FileReader reader = new FileReader("ファイルパス")) {
    // ファイルの読み込み処理
    // リーダーを使用した処理
} catch (IOException e) {
    // IOExceptionの例外処理
} finally {
    // リーダーの解放
}

上記の例では、FileReaderを使用してファイルを読み込む処理を行っています。tryブロックの直前でFileReaderを初期化し、tryブロック内でファイルの読み込み処理を実行します。例外が発生した場合は、catchブロックで適切な例外処理を行います。最後に、finallyブロックでFileReaderを解放してリソースを解放します。

このように、「Try-With-Resources」ステートメントを使用することで、リソースの自動的な解放や例外処理を簡潔かつ安全に記述することができます。Javaのプログラミングでリソースの管理を行う際には、この機能を積極的に活用してください。