Try-Catch Basics
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 23/66。
C# の例外処理により、実行時エラーを優雅に管理できます。try-catch ブロックは、例外を処理する基本的な方法です。
基本的な try-catch ブロックを作成する:
try
{
// 例外(エラー)をスローする可能性のあるコード
int result = 10 / 0; // これは DivideByZeroException をスローします
}
catch (Exception ex)
{
// 例外を処理する
Console.WriteLine("An error occurred: " + ex.Message);
}上記のコードを実行した後、プログラムがクラッシュする代わりに、以下が表示されます:
An error occurred: Attempted to divide by zero.catch ブロックの後にコードの実行を続行できます:
try
{
int result = 10 / 0;
Console.WriteLine("This won't execute");
}
catch (Exception ex)
{
Console.WriteLine("Caught an error: " + ex.Message);
}
Console.WriteLine("Program continues running");チャレンジ
簡単DivideNumbers という名前のメソッドを作成し、2 つの整数をパラメータとして受け取ってください:
numerator- 割られる数denominator- 割る数
このメソッドは次のことを行うべきです:
- numerator を denominator で割ることを試みる
- 成功した場合に結果を返す
- 任意の DivideByZeroException をキャッチし、正確に: "Cannot divide by zero!" を出力する
- 例外が発生した場合は 0 を返す
チートシート
C# における例外処理は、try-catch ブロックを使用して実行時エラーを優雅に管理します:
try
{
// Code that might throw an exception
int result = 10 / 0;
}
catch (Exception ex)
{
// Handle the exception
Console.WriteLine("An error occurred: " + ex.Message);
}catch ブロックの後にコード実行が継続し、プログラムのクラッシュを防ぎます。DivideByZeroException のような特定の例外型をキャッチすることで、より対象を絞ったエラー処理が可能です。
自分で試してみよう
using System;
class Program {
public static int DivideNumbers(int numerator, int denominator) {
// ここにコードを書いてください
}
static void Main(string[] args) {
int numerator = int.Parse(Console.ReadLine());
int denominator = int.Parse(Console.ReadLine());
int result = DivideNumbers(numerator, denominator);
Console.WriteLine(result);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety