编写程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会抛出什么异常?试用异常处理方法修改程序。
时间: 2024-03-13 16:46:35 浏览: 16
下面是一个示例程序:
```java
import java.util.Scanner;
public class CircleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入圆的半径:");
try {
double radius = scanner.nextDouble();
double area = Math.PI * radius * radius;
System.out.println("圆的面积为:" + area);
} catch (Exception e) {
System.out.println("输入数据类型错误,请输入一个有效的double型数据。");
}
}
}
```
在上面的代码中,我们使用`Scanner`类从键盘读取用户输入的半径值,并尝试将该值转换为`double`类型。如果用户输入的不是一个有效的`double`型数据(例如字符串“abc”),那么`scanner.nextDouble()`方法会抛出一个`InputMismatchException`异常。我们使用`try-catch`语句块来捕获该异常,并输出一条错误信息。
当我们运行该程序并输入一个无效的数据类型时(例如字符串“abc”),程序会输出如下错误信息:
```
请输入圆的半径:abc
输入数据类型错误,请输入一个有效的double型数据。
```
注意,在`catch`语句块中我们使用了`Exception`类来捕获任何可能的异常。如果我们只想捕获`InputMismatchException`异常,可以将`Exception`替换为`InputMismatchException`。但是,为了更好地处理可能的异常,建议使用`Exception`类来捕获所有可能的异常。