1.编写程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double 型数据(如字符串“abc”)会抛出什么异常?试用异常处理方法修改程序。
时间: 2024-12-10 13:34:17 浏览: 14
当你试图从键盘输入一个非数字(如字符串“abc”)作为`double`类型的数据,并尝试将其转换为`double`时,Java运行时会产生`NumberFormatException`异常。这种异常发生在无法将字符串解析为预期的数据类型时。
以下是一个简单的Java程序,它演示了如何捕获并处理这个异常:
```java
import java.util.Scanner;
public class CircleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入圆的半径: ");
String radiusStr = scanner.nextLine();
double radius = Double.parseDouble(radiusStr); // 尝试将字符串转换为double
double area = Math.PI * Math.pow(radius, 2);
System.out.println("圆的面积是: " + area);
} catch (NumberFormatException e) {
System.out.println("输入错误! 非法的半径值,请输入一个数字.");
e.printStackTrace(); // 打印异常堆栈信息
}
}
}
```
在这个程序中,如果用户输入的不是一个有效的数字,`Double.parseDouble()`会抛出`NumberFormatException`,然后我们捕获这个异常并给出友好的错误提示。
阅读全文