C# | ゼロからはじめるプログラミング、30日で基礎を学ぶC#:基本機能を身に付ける - Day12:例外処理

C# 30日で身につけるC#
スポンサーリンク
スポンサーリンク

Day12 前半のゴール

Day12 前半では、プログラムの「異常な状態」を安全に処理するための 例外処理(Exception Handling) を学びます。 例外処理は、初心者が最初に戸惑うポイントですが、実務では必須の技術です。 入力ミス・ファイルが存在しない・ネットワークエラーなど、現実のアプリケーションでは必ず起こる問題を安全に扱うための仕組みです。

今回扱う内容は次のとおりです。

try catch finally throw

これらを、初心者でも自然に理解できるように例題を交えて丁寧に解説していきます。

try を理解する

try は「エラーが起きるかもしれない処理」を囲むブロックです

例外処理の基本は、まず try で「危険な処理」を囲むことです。

try
{
    int number = int.Parse("abc"); // ここで例外が発生
}
C#

このコードは "abc" を数値に変換しようとして失敗します。 通常ならプログラムが強制終了しますが、try を使うことで「エラーを捕まえる準備」ができます。

深掘りポイント

try は「エラーが起きる可能性がある処理」を囲むためのものです。 エラーが起きるかどうかは、実際に実行してみないとわからないため、 try は“安全な実行のための保険”のような役割を持っています。

catch を理解する

catch は「エラーが起きたときの処理」を書く場所です

try の中でエラーが発生すると、処理は catch に移動します。

try
{
    int number = int.Parse("abc");
}
catch (Exception ex)
{
    Console.WriteLine("数値に変換できませんでした");
}
C#

深掘りポイント

catch の役割は「プログラムを止めずに、エラーを処理すること」です。 エラーが起きてもプログラムを続行できるため、ユーザーにとって使いやすいアプリになります。

また、Exception ex の ex には「どんなエラーが起きたか」という情報が入っています。 必要に応じて ex.Message を表示することで、より詳しい情報を得られます。

finally を理解する

finally は「エラーが起きても起きなくても必ず実行される」ブロックです

try
{
    Console.WriteLine("処理を開始します");
}
catch
{
    Console.WriteLine("エラーが発生しました");
}
finally
{
    Console.WriteLine("終了処理を行います");
}
C#

深掘りポイント

finally は「後片付け」をする場所です。 ファイルを閉じる ネットワーク接続を切る 一時的なデータを消す

など、必ず実行したい処理をここに書きます。

throw を理解する

throw は「意図的に例外を発生させる」ための仕組みです

throw new Exception("不正な値です");
C#

深掘りポイント

throw は「自分でエラーを作る」ための機能です。 入力チェックなどで「この値は許可できない」と判断したときに使います。

例:年齢がマイナスならエラーにする

if (age < 0)
{
    throw new Exception("年齢は0以上である必要があります");
}
C#

throw を使うことで、 「プログラムが間違った状態で進むこと」を防げます。

数値入力チェックの基礎を理解する

try-catch を使った安全な入力処理

ユーザーが入力した値を数値に変換する場面は非常に多いですが、 入力ミスが起きると例外が発生します。

Console.Write("数値を入力してください:");
string input = Console.ReadLine();

try
{
    int number = int.Parse(input);
    Console.WriteLine("入力された数値: " + number);
}
catch
{
    Console.WriteLine("数値として認識できませんでした");
}
C#

深掘りポイント

例外処理を使うことで、 「入力ミスでプログラムが止まる」という最悪の状況を防げます。

ファイル読み込みエラー処理の基礎を理解する

ファイルが存在しない場合の例外

try
{
    string text = File.ReadAllText("data.txt");
    Console.WriteLine(text);
}
catch (Exception ex)
{
    Console.WriteLine("ファイルを読み込めませんでした");
    Console.WriteLine(ex.Message);
}
C#

深掘りポイント

ファイル操作は「失敗する可能性が高い処理」です。 ファイルがない 権限がない 他のアプリが使用中

など、例外が発生しやすいため、 try-catch を使うことが必須になります。

Day12 前半のまとめ

Day12 前半では、例外処理の基本を学びました。

try → エラーが起きるかもしれない処理を囲む catch → エラーが起きたときの処理を書く finally → 必ず実行したい処理を書く throw → 意図的に例外を発生させる

後半では、これらを使って 数値入力チェック ファイル読み込みエラー処理 といった実用的な例外処理を実際に組み立てながら、 例外処理の応用力を身につけていきます。

タイトルとURLをコピーしました