動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

定石1: try-catch / try-finally / usingの関係(usingは構文糖衣)

出典: C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け定石1: try-catch / try-finally / usingの関係(usingは構文糖衣)

定石1: try-catch / try-finally / usingの関係(usingは構文糖衣) (csharp)#c0aab089a37f
// ✅定石1-a: try-catch —例外を捕まえて処理を続ける
try
{
    var dt = LoadFromDb(orderId);
    Render(dt);
}
catch (SqlException ex)
{
    Logger.Error($"DBエラー: {ex.Number} {ex.Message}");
    ShowErrorDialog("データの読み込みに失敗しました");
}
 
// ✅定石1-b: try-finally —リソース解放を保証
SqlConnection conn = new SqlConnection(connStr);
try
{
    conn.Open();
    //処理
}
finally
{
    conn.Close();
    conn.Dispose();
}
 
// ✅定石1-c: using — try-finallyの構文糖衣(ILレベルで等価)
using (var conn = new SqlConnection(connStr))
{
    conn.Open();
    //処理
}
// ↑ブロック終了時にconn.Dispose()がfinallyで確実に呼ばれる
▸ 実行ボタンで結果を表示
  • id: #c0aab089a37f
  • lines: 32
  • extracted: 2026-06-10
  • captured: 2026-06-10

Source収録記事

この snippet は記事の「定石1: try-catch / try-finally / usingの関係(usingは構文糖衣)」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

8
図鑑トップ