Java递归异常_异常处理完之后,程序会跳回到异常处理块中的递归方法

圆面积计算与异常处理
本文介绍了一个使用Java实现的圆面积计算程序,通过自定义异常确保输入的半径为正数。程序演示了如何捕获和处理异常,并提供用户友好的提示。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值