关于异常的疑难解答:System.FormatException
当参数的格式不满足分析类或规定类格式的方法的参数规范时,该方法将引发 FormatException 异常。
引发格式异常
格式设置
“格式”是将类、结构或枚举值转换为它们的字符串表示形式的过程,通常是为了使得到的字符串可对用户显示或可用于保存对象的状态。
例如,Int32.ToString(String) 采用字符串参数,此参数定义标准或自定义“格式字符串”,并返回数字的字符串表示形式。 如果格式字符串无效或不受支持,该方法将引发 FormatException。
复合格式设置
“复合格式”采用对象列表和复合格式字符串作为输入。 复合格式字符串由固定文本和索引占位符混和组成,其中索引占位符称为格式项,对应于列表中的对象。 格式设置操作产生的结果字符串由原始固定文本和列表中对象的字符串表示形式混和组成。
String.Format 和 Console.WriteLine 是执行复合格式的方法示例。 如果格式字符串无效或格式项的索引小于零,或大于或等于参数的数目,使用复合格式的方法将引发 FormatException。
分析
“分析”是将表示 .NET Framework 基类的字符串转换为该基类的过程。 例如,分析操作用于将字符串转换为浮点数字或日期和时间值。
例如,Int32.Parse(String) Parse 使用 IformatProvider 参数中指定的区域性特定格式信息将日期和时间的字符串表示形式转换为与它等效的 DateTime。 如果字符串格式不正确,将引发 FormatException。
避免 FormatExceptions
FormatException 类引用文章包括 FormatException 错误的常见原因和解决方案。
MSDN 库章节 .NET Framework 中的格式化类型 和 在 .NET Framework 中分析字符串 包含有关正确格式化和分析类的信息。
复合格式设置
数值类型
日期和时间以及时间间隔类型
其他类型