🔴

Try-catchのエラーハンドリング

2024/11/06に公開

try-catch文とは

tryブロックの中でエラーが発生した時に、catchブロックで処理してくれる。

下記のコードは、0で割り算を試みた場合の処理を行っている。
0除算は処理できないため、エラーメッセージが返される。

void main() {
  divideNumbers(10, 0);
}

void divideNumbers(int a, int b) {
  try {
    // ここでゼロ除算を試みる
    var result = a ~/ b;
    print('Result: $result');
  } catch (e) {
   // エラーメッセージが表示される
    print('Error occurred: $e');
  }
}

catchのonキーワード

onキーワードを使うことによって、特定の例外処理をキャッチすることができる。

void main() {
  divideNumbers(10, 0);
}

void divideNumbers(int a, int b) {
  try {
    var result = a ~/ b;
    print('Result: $result');
  } on IntegerDivisionByZeroException catch (e) {
    // 特定の例外処理
    print('Caught an integer division by zero exception: $e');
  } catch (e) {
    print('An unknown error occurred: $e');
  } finally {
    print('Division attempt completed.');
  }
}

finallyブロック

例外が発生したかどうかにかかわらず、必ず実行したい処理を記述できる。

まとめ

  • tryブロックでエラーが発生する可能性のある処理、catchブロックで例外をキャッチして処理を行える。
  • onキーワードを使い、特定の例外タイプごとに処理が可能。
  • finallyブロックで、例外の有無にかかわらず実行したい処理を行える。

Discussion