0Pricing
C# Academy · レッスン

例外処理を理解する

例外処理の手法を使って実行時エラーに適切に対処します

「例外処理を理解する」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン3/5です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全5レッスンが含まれています。

例外処理の概要

例外処理を理解する

次のレッスンへようこそ!このレッスンでは、C# の例外処理とその重要性、アプリケーションでエラーを効果的に処理する方法を学びます。それでは始めましょう!

例外処理を理解する — イラスト1

例外処理とは

例外処理とは

例外処理は、実行時エラーに制御された方法で対応する仕組みです。予期しない状況が発生しても、プログラムを適切に復旧できるようにします。

重要なポイント: 例外処理を使用して、アプリケーションのクラッシュを防ぎ、ユーザーに意味のあるフィードバックを提供します。

Try-Catch ブロック

Try-Catch ブロック

try-catch ブロックは、例外を処理するために使用します。例外をスローする可能性があるコードを try ブロック内に記述し、catch ブロックで例外を処理します。例:

重要なポイント: 異なるエラーを処理するため、catch ブロックでは具体的な例外の種類を使用します。

using System;

class Program {
    static void Main() {
        try {
            int result = 10 / 0; // This will throw a DivideByZeroException
        } catch (DivideByZeroException ex) {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}

Finally ブロック

Finally ブロック

finally ブロックは、例外が発生したかどうかにかかわらず、必ず実行するコードを記述するために使用します。例:

ヒント: ファイルやデータベース接続を閉じるなどの後片付け処理には、finally ブロックを使用します。

using System;

class Program {
    static void Main() {
        try {
            int[] numbers = { 1, 2, 3 };
            Console.WriteLine(numbers[5]); // This will throw an IndexOutOfRangeException
        } catch (IndexOutOfRangeException ex) {
            Console.WriteLine("Error: " + ex.Message);
        } finally {
            Console.WriteLine("This will always execute.");
        }
    }
}

例外をスローする

例外をスローする

throw キーワードを使用して、例外を手動で発生させることができます。例:

重要なポイント: アプリケーションのルールを適用したり、無効な状態に対処したりするために例外をスローします。

using System;

class Program {
    static void Main() {
        try {
            ValidateAge(15);
        } catch (Exception ex) {
            Console.WriteLine("Error: " + ex.Message);
        }
    }

    static void ValidateAge(int age) {
        if (age < 18) {
            throw new ArgumentException("Age must be 18 or older.");
        }
    }
}

カスタム例外

カスタム例外

特定のアプリケーションエラーを処理するために、カスタム例外クラスを定義できます。例:

ヒント: アプリケーションのロジックに固有の、意味のあるエラーメッセージを提供するには、カスタム例外を使用します。

using System;

class CustomException : Exception {
    public CustomException(string message) : base(message) {}
}

class Program {
    static void Main() {
        try {
            throw new CustomException("This is a custom exception.");
        } catch (CustomException ex) {
            Console.WriteLine("Caught custom exception: " + ex.Message);
        }
    }
}

練習問題

練習問題

ユーザーから数値を入力して受け取り、その数値が負の場合に例外をスローするプログラムを作成してください。try-catch ブロックを使用して例外を処理します。例:

using System;

class Program {
    static void Main() {
        try {
            Console.WriteLine("Enter a number:");
            int number = int.Parse(Console.ReadLine());
            if (number < 0) {
                throw new ArgumentException("Number cannot be negative.");
            }
            Console.WriteLine("You entered: " + number);
        } catch (Exception ex) {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}

例外処理のベストプラクティス

例外処理のベストプラクティス

以下にベストプラクティスを示します。

  • ほかのエラーを隠してしまわないよう、具体的な例外だけを捕捉します。
  • リソースのクリーンアップには finally ブロックを使用します。
  • 例外は、制御フローではなく例外的な状況に対してスローします。
  • 本番環境で問題を追跡できるよう、例外をログに記録します。

ヒント: 適切な例外処理によって、アプリケーションの堅牢性と使いやすさが向上します。

例外処理の復習

よくできました!

おめでとうございます!エラーに強いアプリケーションを構築するために、例外を効果的に処理する方法を学びました。次のレッスンでは、データを管理およびクエリするためのデータベースの扱い方を学びます。引き続きコーディングしましょう!

例外処理を理解する — イラスト10

よくある質問

「例外処理を理解する」レッスンは無料ですか?

はい。「例外処理を理解する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全5レッスンが含まれています。

「例外処理を理解する」で何を学びますか?

例外処理の手法を使って実行時エラーに適切に対処します ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/5です。

「例外処理を理解する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイルの読み書き
  2. JSONとXMLを扱う
  3. 例外処理を理解する
  4. データベースを扱う
  5. LINQでデータをクエリする
← C# Academyに戻る