这个报错通常是字符串转数字或日期时格式对不上,或者字符串本身为空导致的。
🔍 常见出错原因
-
空字符串转换:把空串直接转成 int 或 DateTime 会报错。
-
格式不匹配:比如字符串"abc"想转成数字,或者日期字符串格式不对。
-
string.Format 问题:格式字符串里花括号没正确转义,占位符数量不对。
-
特殊字符干扰:字符串里有制表符、换行符等影响解析。
✅ 怎么解决
- 先判断再转换:用 TryParse 替代 Parse,转换失败不会抛异常。
if (int.TryParse(str, out int result)) {
// 转换成功,使用 result
}
-
检查字符串是否为空:转换前先判断`string.IsNullOrEmpty(str)`。
-
确认日期格式:用 DateTime.ParseExact 指定确切格式,如"yyyy-MM-dd"。
-
检查 string.Format:需要输出花括号时用双写转义,`{{`表示`{`,`}}`表示`}`。