Java——异常处理

我们平时所处理的异常都是Exception异常。

 

为什么使用异常?

在程序调用方法的时候,可能会出错,比如数组下标越界,空指针,数值转换异常等等,又比如取款必须小于余额,而我们在输入的时候可能会出错,由此导致异常。

处理异常:

抛出异常-捕获异常-处理异常

处理异常基本写法:

try 
{
	语句组
}
catch(Exception ex)
{
	异常处理语句组
}

代码实现:

public class Test {            
	public static void main(String[] args)throws Exception //声明异常类型
	{ 
		Account ac=new Account();        //创建一个账户对象
		boolean continueInput=true;        
		do
		{
			try                    //try-catch语句测试-捕获异常
			{
				System.out.println("Enter the money:");
				ac.withdraw(new Scanner(System.in).nextDouble());
				continueInput=false;
			}
			catch(Exception ex)
			{
				System.out.println(ex.getMessage());
				System.out.println("Reset the money!");
			}
		}while(continueInput);
		System.out.println("Finish this action!");
	}
}
class Account throws Exception          //创建一个账户类,声明异常类
{
	double balance=5000;            //定义余额
	public void withdraw(double money)throws Exception    //取款方法,可能抛出异常
	{
		if(money>this.balance)
		{
			throw new Exception("余额不足!");      //抛出一个异常对象
		}
		else
			balance-=money;
	}
}

上述代码使用的是Exception异常类,除了RuntimeException异常可以不需要声明或者处理外(因为这是非检测异常,运行时JVM会处理),其他的Exception异常都需要处理和声明(比如自定义的)。


异常的注意事项:

1.throws的应用:

定义方法时,以后调用此方法,需要进行try-catch语句处理。

如果对语句不希望处理try-catch语句,以用throw进行抛出。

2.异常的处理结构:

try-catch-finally,finally语句可以没有,如果有,不管try-catch执不执行,它都会执行。

3.自定义异常类:https://blog.csdn.net/weixin_42247720/article/details/80424433

必须继承Exception。

4.在自定义位置需要写明:throws Exception

catch语句为if-else结构,在catch块中,把父类的异常放在下面,子类异常先处理。

5.在类的继承时:

子类throw的异常必须是父类异常的子异常,不能throw新的异常,只能比父类的少,不能比父类的多。

6.在捕获异常后:

如果不能处理,要重新抛出,让其他调用者知道,不要自己随便处理。

欢迎大家评论讨论~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狮子座的程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值