●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

エラーから安全に回復する「例外処理(try-catch-finally)」とは?

C#の 例外処理 は、実行中にエラー(例外)が発生しても、プログラムを強制終了させずに安全に処理を続けるための仕組みです。
trycatchfinally ブロックを使って記述します。

基本構文

try {
    // 例外が発生する可能性のある処理
}
catch (例外の型 変数名) {
    // エラーが起きた時の処理
}
finally {
    // 最後に必ず実行される処理(省略可)
}
    

例:0で割ったときの処理

try {
    int a = 10;
    int b = 0;
    int result = a / b;  // ここで例外が発生
}
catch (DivideByZeroException ex) {
    Console.WriteLine("0で割ることはできません!");
    Console.WriteLine("エラー内容:" + ex.Message);
}
finally {
    Console.WriteLine("処理を終了します。");
}
    

catchのバリエーション

  • catch (Exception ex):すべての例外を捕捉(汎用的)
  • catchだけでも記述可能(例外情報を使わない)
  • 複数のcatchブロックを使い分け可能
try {
    // 何かの処理
}
catch (FormatException ex) {
    Console.WriteLine("フォーマットエラー");
}
catch (Exception ex) {
    Console.WriteLine("その他のエラー");
}
    

finallyの役割

finallyブロックは、例外が発生してもしなくても必ず実行されます。
ファイルのクローズや接続の切断など、後始末に使われます。

throw文で例外を発生させる

throw new Exception("強制的にエラーを発生");
    

例:独自のチェックとthrow

int age = -5;
if (age < 0) {
    throw new ArgumentException("年齢は0以上である必要があります");
}
    

例外処理のメリット

  • プログラムの異常終了を防げる
  • エラー内容を詳しく記録・通知できる
  • 安全に後処理を実行できる

まとめ

例外処理(try-catch-finally)は、実行時に発生する予期せぬエラーに備えて、安全な動作を保証する仕組みです。
tryで危険な処理を囲み、catchでエラーを処理し、finallyで後始末を行うことで、堅牢で安定したプログラムを作ることができます。

 

C#関連用語集

−−−−−  C#  −−−−−

C#の基本単位「クラス(Class)」とは?

クラスから生まれる実体「オブジェクト(Object)」とは?

クラスの実体「インスタンス(Instance)」とは?

オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?

フィールドへのアクセスを制御!「プロパティ(Property)」とは?

クラスが持つデータ「フィールド(Field)」とは?

クラスの動作を定義する「メソッド(Method)」とは?

既存のクラスを引き継ぐ「継承(Inheritance)」とは?

同じ命令で異なる動きができる「多態性(Polymorphism)」とは?

データを守る「カプセル化(Encapsulation)」とは?

土台だけを用意する「抽象クラス(Abstract Class)」とは?

ルールを定める仕組み「インターフェース(Interface)」とは?

親クラスのメソッドを上書きする「オーバーライド(Override)」とは?

引数の違いで同じ名前が使える「オーバーロード(Overload)」とは?

C#で自分自身を指す「thisキーワード」とは?

親クラスの機能を使う「baseキーワード」とは?

インスタンス不要で使える「static(静的)」とは?

値を変えたくないときに使う「readonly / const(定数)」とは?

メソッドを渡せる仕組み「delegate(デリゲート)」とは?

「何かが起きたら知らせる」仕組み「event(イベント)」とは?

簡潔な書き方ができる「ラムダ式(Lambda Expression)」とは?

C#で使える「LINQ(言語統合クエリ)」とは?

エラーから安全に回復する「例外処理(try-catch-finally)」とは?

意図的にエラーを発生させる「throw(スロー)」とは?

名前空間やリソースを扱う「usingディレクティブ」とは?

クラスの整理に便利な「namespace(名前空間)」とは?

型を柔軟に扱う「ジェネリクス(Generics)」とは?

データの集まりを扱う「コレクション(List / Dictionary / HashSet)」とは?

処理を止めずに進める「非同期処理(async / await)」とは?

簡単に使えて便利!「自動実装プロパティ」と「プロパティ初期化子」