JavaScript/finally
finally
finally は、JavaScript において、try...catch...finally
文の一部として使用されるキーワードです。finally
ブロックは、エラーの発生有無に関わらず、必ず実行されるコードを記述するために使用されます。これにより、リソースの解放や後処理などを確実に行うことができます。
構文
try { // 試行するコード } catch (error) { // エラーが発生した場合の処理 } finally { // 常に実行されるコード }
説明
使用例
try { console.log('Trying...'); throw new Error('Something went wrong'); } catch (error) { console.error('Caught an error:', error.message); } finally { console.log('Finally block executed'); }
この例では、finally
ブロックがエラーの発生に関係なく実行されます。
リソース解放の例
function readFile(fileName) { let fileHandle; try { fileHandle = openFile(fileName); // ファイルを処理するコード } catch (error) { console.error('Error reading file:', error.message); } finally { if (fileHandle) { closeFile(fileHandle); console.log('File closed'); } } }
この例では、ファイル操作中にエラーが発生しても、finally
ブロックを使ってファイルハンドルを確実に解放します。
注意点
finally
ブロックが実行された後も、エラーが再スローされる場合があります。エラーの処理を完全に防ぐには、catch
ブロックで適切に対処する必要があります。- ネストされた
try...catch...finally
文では、外側と内側のfinally
ブロックがそれぞれ独立して実行されます。