`NumberFormatException` 是 Java 中的一个异常,用于处理当应用程序尝试将一个字符串转换为数字时,但字符串的格式不正确的情况。当您尝试将一个不是数字的字符串(例如包含非数字字符的字符串)转换为整数、浮点数或其他数字类型时,通常会抛出此异常。
例如,以下代码会抛出 `NumberFormatException`:
```java
String str = "abc";
int number = Integer.parseInt(str); // 这里会抛出异常,因为 "abc" 不是一个数字字符串
```
处理这种情况的一种常见方法是使用异常处理结构来捕获 `NumberFormatException` 并采取适当的行动,例如提示用户输入正确的格式或采取其他纠正措施。
以下是一个简单的例子,展示了如何捕获 `NumberFormatException`:
```java
String str = "abc"; // 或者其他非数字字符串
try {
int number = Integer.parseInt(str); // 尝试转换字符串为数字
System.out.println("转换成功:" + number);
} catch (NumberFormatException e) { // 如果转换失败,捕获异常
System.out.println("输入的字符串不是一个有效的数字,请重新输入。");
}
```
在这个例子中,如果 `str` 不是数字字符串,那么 `Integer.parseInt(str)` 会抛出 `NumberFormatException`,并且程序会打印错误消息而不是崩溃。