对上机4中的第1题,修改圆的半径的输入方式为从键盘上输入,为防止输入负数,请通过throws和throw设计出一旦出现负数时的异常处理方法,并通过本题的测试类进行测试。
时间: 2024-05-08 22:22:03 浏览: 89
java处理异常的机制关键字throw和throws使用解析
5星 · 资源好评率100%
好的,下面是修改后的代码:
```java
import java.util.Scanner;
class Circle {
private double radius;
public Circle(double radius) throws Exception {
if (radius < 0) {
throw new Exception("半径不能为负数!");
}
this.radius = radius;
}
public void setRadius(double radius) throws Exception {
if (radius < 0) {
throw new Exception("半径不能为负数!");
}
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getCircumference() {
return 2 * Math.PI * radius;
}
}
public class TestCircle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入圆的半径:");
double radius = scanner.nextDouble();
try {
Circle circle = new Circle(radius);
System.out.println("圆的面积为:" + circle.getArea());
System.out.println("圆的周长为:" + circle.getCircumference());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
```
在构造方法和setRadius方法中,当半径小于0时,我们抛出一个异常。在测试类中,我们使用try-catch语句来捕获异常。如果发生异常,我们输出异常信息。现在我们来测试一下:
```
请输入圆的半径:-5
半径不能为负数!
```
可以看到,当我们输入负数时,程序正确地抛出了异常并提示了错误信息。当我们输入正数时,程序可以正常计算圆的面积和周长。
阅读全文