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

4. catch (DbException)とcatch (Exception)の順序

出典: C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け落とし穴5つ—業務系本番事故の常連 / 4. catch (DbException)とcatch (Exception)の順序

4. catch (DbException)とcatch (Exception)の順序 (csharp)#3e0a5ff2f976
// ❌ NG:派生型を後ろに書くと到達不能(コンパイルエラー)
try { ... }
catch (Exception ex){ /* 全部ここに来る */ }
catch (SqlException ex){ /* ←ここには到達しない、コンパイルエラー */ }
 
// ✅ OK:派生型を上、基底型を下
try { ... }
catch (SqlException ex){ /* DB専用処理 */ }
catch (DbException ex){ /* DB系の他の例外 */ }
catch (Exception ex){ /* それ以外、ログ+上位通知 */ }
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #3e0a5ff2f976
  • lines: 10
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「落とし穴5つ—業務系本番事故の常連 / 4. catch (DbException)とcatch (Exception)の順序」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

8
図鑑トップ