该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package TestDemo;
import java.util.Scanner;
/**
* 计算圆的面积,通过自定义异常来设计,半径不能为零和负数,采用异常处理机制
*/
public class HomeWork extends RuntimeException{
public static double getArea(double r){
//自定义异常
if (r <= 0) {
throw new ValiDataException("半径不能为0或者是负数:");
}
double area = 0;
area = Math.PI * r * r;
return area;
}
public static double inputR(){
double area = 0;
double d = 0;
//定义扫描器获得输入的半径
System.out.println("请输入半径:");
Scanner sc = new Scanner(System.in);
try {
d = sc.nextDouble();
d = Double.valueOf(d);
} catch (Exception e) {
System.out.println("输入错误,请重新输入");
inputR();
}
try {
area = getArea(d);
System.out.println("圆的面积是:"+area);
System.out.println("d的值:"+d);
} catch (Exception e) {
if (e instanceof ValiDataException) {
if(d <= 0){
System.out.println("半径需要大于零,请重新输入!");
}
inputR();
}
}
return area;
}
public static void main(String[] args) {
inputR();
}
ValiDataException这个类是重写了RuntinmeException类中的5个构造方法。
控制台这边的问题,程序输入正确的值并没有直接结束程序
请输入半径:
ass
输入错误,请重新输入
请输入半径:
-1
半径需要大于零,请重新输入!
请输入半径:
1
圆的面积是:3.141592653589793
d的值:1.0
半径需要大于零,请重新输入!
请输入半径:
1
圆的面积是:3.141592653589793
d的值:1.0Process finished with exit code 0
[img pic_type= width= height=]file:///C:/Users/HelloWord/AppData/Roaming/Tencent/Users/2264871274/QQ/WinTemp/RichOle/Q_ARF%7D%7D_]QA4$QFUQJ$5MSI.png[/img]
圆面积计算与异常处理
本文介绍了一个使用Java实现的圆面积计算程序,通过自定义异常确保输入的半径为正数。程序演示了如何捕获和处理异常,并提供用户友好的提示。
313

被折叠的 条评论
为什么被折叠?



