本文へスキップ
BecomeCoder

C#文法コース · 第6章 例外処理とnull安全 · レッスン44

try-catch で例外を受け止める

ブラウザで完結

導入

プログラムは「0で割る」「数値でない文字列を変換する」など、実行中に例外(エラー)で止まることがあります。try-catchを使うと、その例外を受け止めてプログラムの停止を防げます。

図解

flowchart TB
    T["try ブロックの処理"] --> E{"例外が起きた?"}
    E -->|いいえ| N["そのまま続行"]
    E -->|はい| C["catch ブロックで対応<br/>(プログラムは止まらない)"]
    C --> AFTER["続きの処理へ"]
    N --> AFTER

サンプル

try
{
    int result = int.Parse("abc");   // ここで例外が発生
    Console.WriteLine(result);        // この行は実行されない
}
catch (Exception ex)
{
    // 例外が起きたらここに飛んでくる
    Console.WriteLine($"エラーが発生: {ex.Message}");
}

Console.WriteLine("プログラムは続行しています");
  • try { ... } に「失敗するかもしれない処理」を書く
  • catch (Exception ex) { ... } で例外を受け止める。ex.Messageにエラー内容が入る
  • 例外を受け止めればプログラムは止まらず、続きを実行できる

演習

string input = "not a number";

// TODO: input を int.Parse で変換し、失敗したら "変換できませんでした" と出力してください
___
  • 期待される出力: 変換できませんでした
ヒント1を見る

try { int.Parse(input); } catch (Exception) { ... }

ヒント2を見る

try { int.Parse(input); } catch (Exception) { Console.WriteLine("変換できませんでした"); }

まとめ

  • try-catchで例外を受け止め、プログラムの停止を防ぐ
  • catch (Exception ex)ex.Messageにエラー内容が入る
  • 「失敗しうる処理」をtryで囲むのが基本

次回: 例外の種類を見分けてcatchを絞り込みます。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。