Java——自定义异常类

为什么要自定义异常类?

当我们在输入成绩,输入工资,取款的时候,往往都有一个范围,而这个范围不是JVM能够识别的,因此在输入的时候就容易出错,因此在这些时候JDK中的异常无法满足我们的需求,我们只能自己定义异常类。

如何自定义异常类?

可以通过继承Exception来派生自己的子异常类。

而Exception中常用的构造方法:+Exception(),+Exception(message:String),+Exception(message:String,Throwable ex)也可以被子类用super调用。

class BalanceException extends Exception
{
	double balance;
	public BalanceException(double balance)    //构造方法
	{
		super("余额不足!"+balance);	    //调用Exception(message:String)	
	}
}

自定义了一个异常类,

public class Test {            
	public static void main(String[] args)throws Exception     //声明异常类型
	{ 
		Account ac=new Account();        //创建一个账户类
		boolean continueInput=true;      //设置一个管理循环的变量
		do
		{
			try                //测试与捕获异常
			{
				System.out.println("Enter the money:");    
				ac.withdraw(new Scanner(System.in).nextDouble());    
				continueInput=false;    
			}
			catch(BalanceException ex)   
			{
				System.out.println(ex.getMessage());
				System.out.println("Reset the money!");
			}
		}while(continueInput);
		System.out.println("Finish this action!");
	}
}
class Account    //创建账户类
{
	double balance=5000;
	public void withdraw(double money)throws BalanceException    //声明可能会发生异常
	{
		if(money>this.balance)
		{
			throw new BalanceException(balance);        //抛出异常对象
		}
		else
			balance-=money;
	}
}

输出结果:

Enter the money:
5001
余额不足!5000.0
Reset the money!
Enter the money:
3000
Finish this action!

自定义异常类使用方法:

创建一个异常类并继承Exception父类,完善异常类的类体。

在可能发生自定义异常的方法中throws(声明)该异常,并根据发生异常情况抛出异常对象。

在调用上述方法的地方try-catch(捕获)该异常对象,并进行处理。

自定义异常类注意事项:

1.继承Exception异常类。

2.可以使用+Exception(),+Exception(message:String),+Exception(message:String,Throwable ex)等构造方法。

3.所有的异常需要注意的事项。

异常处理:https://blog.csdn.net/weixin_42247720/article/details/80422621


欢迎大家评论探讨~~~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值