「C#.NET」エラー処理の神、try~catchステートメントの基礎を学ぶ

2024年11月9日土曜日

キーワード(構文) 基本 例外処理

t f B! P L

自己紹介

私は「try~catch」ステートメント。プログラムを守るために生まれた守護者のような存在です。予期せぬエラーが発生したとき、私はそれをしっかりキャッチし、プログラムをクラッシュさせないようにします。まるで世界が滅びた後に現れる新世界に甦った神のように、誰もが安心できるように守護する力を持っています。

基本機能

try~catchは、コード実行中に予期しないエラーや例外が発生した際、そのエラーを捕まえて安全に処理を行うために使用します。tryブロックの中で発生した例外をcatchブロックでキャッチし、プログラムが中断しないようにします。これにより、プログラムの安定性とユーザー体験を保つことができます。

エラー発生時の対処

try~catchは、エラーが発生する可能性のあるコードを囲み、そのエラーを捉える役割を担っています。エラーが発生した場合、プログラムはすぐにcatchブロックに移行し、指定した処理を実行します。こうすることで、エラーを放置することなく、プログラムが継続的に動作し続けることができます。

柔軟なエラー処理

catchブロックでは、複数の異なる種類の例外を処理することができます。たとえば、ファイルが見つからない場合にはFileNotFoundExceptionを、データ型が合わない場合にはFormatExceptionをキャッチすることができます。これにより、エラーごとに適切な処理を行い、プログラムを健全に保つことができます。

finallyブロックでの後処理

finallyブロックは、try~catchステートメントの一部で、例外が発生しても発生しなくても必ず実行される処理を記述できます。ファイルやデータベース接続を開いた場合には、その後始末をfinallyブロックで行うことで、プログラムの終了時に確実にリソースを解放できます。

注意点とベストプラクティス

try~catchを使う際には、無闇に多用することは避けるべきです。特にパフォーマンスが求められる処理においては、try~catchがあると処理速度が低下することがあります。また、全ての例外をcatch(Exception ex)で捕まえるのではなく、特定の例外を捉えるようにすると、より精度の高いエラーハンドリングが可能になります。

サンプルコード

C#
using System;

class TryCatchExample
{
    public static void Main()
    {
        // ユーザーから数字を入力してもらう
        Console.WriteLine("数字を入力してください:");

        try
        {
            string input = Console.ReadLine();
            int number = int.Parse(input);

            Console.WriteLine("入力された数字は: " + number);
        }
        catch (FormatException ex)
        {
            Console.WriteLine("無効な形式です。数字を入力してください。");
        }
        catch (OverflowException ex)
        {
            Console.WriteLine("入力された数字が大きすぎます。");
        }
        finally
        {
            Console.WriteLine("終了します。");
        }
    }
}

解説

このサンプルコードでは、ユーザーから入力された数字を整数に変換しています。もしユーザーが無効な入力をした場合(例:文字を入力した場合)や、入力された数字が範囲外の場合(オーバーフロー)が発生した場合、それぞれに適切なエラーメッセージを表示するようにしています。finallyブロックには必ず「終了します」というメッセージを表示し、処理が終了したことを伝えます。このように、try~catchステートメントは、予期しないエラーに対して柔軟に対応できる強力なツールです。

このブログを検索

QooQ