java.lang.NumberFormatException
是 Java 中常见的运行时异常,当应用程序尝试将字符串转换为数字类型(如 int
、float
、double
等)但字符串格式不正确时,就会抛出此异常。在你提供的错误信息中,异常是由于尝试将空字符串 ""
转换为数字而引发的。
NumberFormatException:这是一个运行时异常,属于 java.lang
包。它通常发生在使用 Integer.parseInt()
、Double.parseDouble()
等方法将字符串转换为数值类型时,如果字符串不能被解析为有效的数字格式,就会抛出此异常。
此异常主要出现在需要进行数据类型转换的场景中,特别是在处理用户输入或外部数据源时。
原因:
解决方法:
public static int safeParseInt(String str) {
if (str == null || str.trim().isEmpty()) {
throw new IllegalArgumentException("Input string is empty or null");
}
try {
return Integer.parseInt(str);
} catch (NumberFormatException e) {
throw new NumberFormatException("Invalid number format for input string: " + str);
}
}
public static boolean isValidNumber(String str) {
if (str == null || str.trim().isEmpty()) {
return false;
}
return str.matches("-?\\d+(\\.\\d+)?"); // 正则表达式匹配整数或浮点数
}
NumberFormatException
的代码块周围使用 try-catch
语句进行异常处理。try {
int number = Integer.parseInt(userInput);
// 进一步处理 number
} catch (NumberFormatException e) {
System.err.println("Error: Invalid number format.");
// 提供用户友好的错误消息或采取其他恢复措施
}
假设你正在开发一个电子商务应用程序,需要处理用户输入的商品数量。在这种情况下,如果用户输入了一个非数字字符串,你的程序应该能够优雅地处理这种情况,而不是崩溃。
通过实施上述解决方案,你可以确保应用程序在面对无效输入时仍能保持稳定运行,并向用户提供清晰的反馈。
领取专属 10元无门槛券
手把手带您无忧上云