まず、FormatExceptionが発生する主な原因は、文字列を数値や日付などの別のデータ型に変換しようとしたときに、フォーマットが一致しないことです。たとえば、文字列が数字の形式ではなく、Int32.Parseメソッドを使用して整数に変換しようとすると、FormatExceptionがスローされます。
このエラーを回避するためには、例外処理を使用して適切なエラーハンドリングを行うことが重要です。以下に、FormatExceptionをキャッチして処理する方法を示します。
try
{
// 変換しようとするコード
}
catch (FormatException ex)
{
Console.WriteLine("入力された値のフォーマットが正しくありません。");
Console.WriteLine("詳細: " + ex.Message);
}
このように、コードをtry-catchブロックで囲み、FormatExceptionをキャッチして適切なエラーメッセージを出力することができます。
さらに、具体的なコード例を示します。
- 文字列を整数に変換する例:
string numberString = "123";
int number;
try
{
number = Int32.Parse(numberString);
Console.WriteLine("変換結果: " + number);
}
catch (FormatException ex)
{
Console.WriteLine("入力された値のフォーマットが正しくありません。");
Console.WriteLine("詳細: " + ex.Message);
}
- 文字列を日付に変換する例:
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を解決するためのシンプルな方法とコード例です。これらの手法を使用することで、フォーマットエラーに対して適切に対処することができます。ご参考にしてください。