演習課題「例外の種類を変更しよう」
右のコードでは、 Hello Word,answer,Hello C#を出力します。
しかし、aを数値に変換しようとするため例外が発生するのですが、捕捉する例外が異なるため、プログラムが強制終了してしまいます。
このプログラムを修正して、引数の形式が無効な場合の例外を捕捉してください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
期待する出力値
Hello World
Hello C#
期待する標準エラー出力値
引数が無効な形式です
#04:発生させる例外を変えてみよう
いろいろな種類の例外に対応する方法を学習します。例として、ゼロで割り算するだけでなく、数値変換の例外を捕捉してみましょう。
// 発生させる例外を変えてみよう
using System;
class Lesson10
{
public static void Main()
{
Console.WriteLine("Hello World");
try
{
int number = int.Parse("a");
int answer = 100 / number;
Console.WriteLine(answer);
}
catch (FormatException e)
{
Console.Error.WriteLine("引数が無効な形式です");
Console.Error.WriteLine(e);
}
finally
{
Console.WriteLine("Hello C#");
}
}
}
【DivideByZeroException】
ゼロ除算で発生する例外
【FormatException】
引数の形式が無効な場合に発生する例外
DivideByZeroException Class (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.dividebyzeroexception?view=netframework-4.8
FormatException Class (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.formatexception?view=netframework-4.8
例外処理 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
https://ufcpp.net/study/csharp/oo_exception.html
例外と例外処理 - C# プログラミング ガイド | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/exceptions/
Exception Class (System) | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/api/system.exception?view=netframework-4.8