C#でのFormatExceptionの解決方法


まず、FormatExceptionが発生する主な原因は、文字列を数値や日付などの別のデータ型に変換しようとしたときに、フォーマットが一致しないことです。たとえば、文字列が数字の形式ではなく、Int32.Parseメソッドを使用して整数に変換しようとすると、FormatExceptionがスローされます。

このエラーを回避するためには、例外処理を使用して適切なエラーハンドリングを行うことが重要です。以下に、FormatExceptionをキャッチして処理する方法を示します。

try
{
    // 変換しようとするコード
}
catch (FormatException ex)
{
    Console.WriteLine("入力された値のフォーマットが正しくありません。");
    Console.WriteLine("詳細: " + ex.Message);
}

このように、コードをtry-catchブロックで囲み、FormatExceptionをキャッチして適切なエラーメッセージを出力することができます。

さらに、具体的なコード例を示します。

  1. 文字列を整数に変換する例:
string numberString = "123";
int number;
try
{
    number = Int32.Parse(numberString);
    Console.WriteLine("変換結果: " + number);
}
catch (FormatException ex)
{
    Console.WriteLine("入力された値のフォーマットが正しくありません。");
    Console.WriteLine("詳細: " + ex.Message);
}
  1. 文字列を日付に変換する例:
string dateString = "2022-01-01";
DateTime date;
try
{
    date = DateTime.Parse(dateString);
    Console.WriteLine("変換結果: " + date.ToString("yyyy/MM/dd"));
}
catch (FormatException ex)
{
    Console.WriteLine("入力された値のフォーマットが正しくありません。");
    Console.WriteLine("詳細: " + ex.Message);
}

以上が、FormatExceptionを解決するためのシンプルな方法とコード例です。これらの手法を使用することで、フォーマットエラーに対して適切に対処することができます。ご参考にしてください。