【Aモデル録 フェーズ1 C#基礎】

06-05:例外処理(try-catch)

〜「エラーで止まる」から「エラーを受け止める」へ〜

一言で言うと

👉 例外(Exception)とは、「実行中に起きた想定外の出来事」
👉 try-catch とは、「その出来事でプログラムを即死させない仕組み」


超重要前提 エラーには2種類ある

❌ コンパイルエラー

👉 実行前に止まる(修正必須)

💥 実行時エラー(=例外)

👉 実行して初めて起きる

try-catch が扱うのは、後者。


最小コードで見る「例外」

int x = 10;
int y = 0;

int result = x / y; // 💥事故が起きる

👉 0で割れない

実行すると:

DivideByZeroException	//ゼロ除算例外

「例外メッセージ」が出力され、プログラム 即終了。


try-catch の基本形

try
{
    // 危険そうな処理
}
catch
{
    // 例外が起きたときの処理
}

実践コード

try
{
    int x = 10;
    int y = 0;
    int result = x / y;
}
catch
{
    Console.WriteLine("エラーが発生しました");
}

結果:

👉 これが try-catch の役割


Aモデルで考える try-catch

日本語にすると

try
{
    危険かもしれない作業をやってみる
}
catch
{
    失敗したら、こちらで対応する
}

会社イメージ:


超重要 try-catch の誤解を潰す

❌ try-catch = エラーを無視する

❌ 違う

👉 「エラーを検知して、制御を続ける」


❌ 何でも try-catch で囲めば安全

❌ 違う

👉 設計ミスを隠すだけになる


正しい使いどころ(実務基準)

try-catch を使うべき場所

使うべきでない場所


null との関係(null解説回との統合)

SeizoBu seizoBu1 = null;	//nullで作っていたとする

try
{
    seizoBu1.TargetNumber = 1000;
}
catch (NullReferenceException)
{
    Console.WriteLine("部署が存在しません");
}

👉 null を「事故」として処理できる

ただし。
これが超重要ポイント。

👉try-catch は「最後の安全ネット」
本当の理想は「例外が起きない設計」


例外と try-catch の着地点


補足:例外メッセージの正体

これは、現段階で理解する必要はありません。

が、知識として知っておく意味が、充分にあるところ。

例外情報を出しているのは「クラス」

catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

どんな処理がされているか

例外が発生したとき、C#内部では:

👉 「例外オブジェクト(Exceptionオブジェクト)」
が生成されています。

その中に、以下の情報が入っています:

画面に出てくる代表的な情報

System.NullReferenceException: Object reference not set to an instance of an object.

これを分解すると:

この 英文そのものは、

👉 Exception.Message プロパティの中身

です。

つまり、

💡「この英文メッセージ」
= 例外オブジェクトが出してくれる Message

よく見る代表例外(今は名前だけ)

👉 全部 Exception(例外) の子ども


構成と読み方|タイトル一覧

Top - はじめに|この忘備録と「Aモデル」について