C#で業務用の例外を自分で定義する
このレッスンでは、業務上のエラーを表す独自の例外の型を作り、その種類のエラーだけを正確に捕まえます。
はじめに
汎用的なExceptionを投げる代わりに、在庫不足のような業務上のエラーをはっきり表す名前の例外を自分で定義できます。こうするとコードが読みやすくなり、エラー処理の部分で処理したい種類のエラーを正確に捕まえられます。
クラスInsufficientStockExceptionはExceptionを継承しているので、普通の例外の振る舞いをすべて持っています。Reserveメソッドは、要求された数量が在庫より多いときにこの例外を投げます。catchブロックはInsufficientStockExceptionの種類だけを捕まえ、Not enough stockというメッセージを表示します。
実行できる C# の例
C#
Program.cs
using System;
class InsufficientStockException(string message) : Exception(message) { }
class Program
{
static void Reserve(int available, int requested)
{
if (requested > available) throw new InsufficientStockException("Not enough stock");
}
static void Main()
{
try { Reserve(2, 3); }
catch (InsufficientStockException error) { Console.WriteLine(error.Message); }
}
}
Not enough stockデバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
- 最初の無効な年齢 入力された年齢を検証し、プログラムがクラッシュする代わりに最初の不正な入力位置を報告します。 簡単
- 有効な数だけを合計する 整数の項目だけを合計し、それ以外は try/except で不正入力を扱うように無視します。 簡単