处理异常

处理异常

在Java之中如果要进行异常的处理,可以使用:try、catch、finally这几个关键字来完成,其基本的处理结构如下:

try{
	//可能出现异常的语句
}[catch(异常类型 异常对象){
	//异常处理
}catch(异常类型 异常对象){
	//异常处理
}catch(异常类型 异常对象){
	//异常处理
}catch(异常类型 异常对象){
	//异常处理
}...][finally]{
	不管是异常是否处理都要执行;
}

在此格式之中可以使用的组合为:

  • try…catch
  • try…catch…finally
  • try…finally

范例:处理异常

class  JavaDemo
{
	public static void main(String[] args) 
	{
		System.out.println("【1】程序开始执行");
		try{
			System.out.println("【2】数值计算:"+10/0);
		}catch(ArithmeticException e){
			System.out.println(e);//处理异常
		}
		
		System.out.println("【3】程序执行完毕");
	}
}

结果:
【1】程序开始执行
java.lang.ArithmeticException: / by zero
【3】程序执行完毕

此时可以发现现在几遍出现了异常,程序也可以正常执行完毕,所以此时的设计属于一个合理设计,但是有一个问题:此时在进行异常处理的时候直接输出的是一个异常类的对象,那么对于此对象如果直接打印(调用toString())所得到的异常信息并不完整,那么如果想获得非常完成的异常信息,则可以使用异常类中提供的printStackTrace()方法完成

范例:获取完整异常信息

class  JavaDemo
{
	public static void main(String[] args) 
	{
		System.out.println("【1】程序开始执行");
		try{
			System.out.println("【2】数值计算:"+10/0);
		}catch(ArithmeticException e){
			e.printStackTrace();//处理异常
		}
		
		System.out.println("【3】程序执行完毕");
	}
}

结果:
【1】程序开始执行
java.lang.ArithmeticException: / by zero
at JavaDemo.main(认识异常对程序的影响.java:7)
【3】程序执行完毕

对于异常的处理格式也可以在最后追加有一个finally程序块,表示异常处理后的出口,不管异常是否处理都执行。

范例:使用finally语句

class  JavaDemo
{
	public static void main(String[] args) 
	{
		System.out.println("【1】程序开始执行");
		try{
			System.out.println("【2】数值计算:"+10/0);
		}catch(ArithmeticException e){
			e.printStackTrace();//处理异常
		}finally{
			System.out.println("不管是否出现异常我都会执行");
		}
		
		System.out.println("【3】程序执行完毕");
	}
}

结果:
【1】程序开始执行
java.lang.ArithmeticException: / by zero
at JavaDemo.main(认识异常对程序的影响.java:7)
不管是否出现异常我都会执行
【3】程序执行完毕

此时程序中有异常执行finally,就算没有异常也会执行finally。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值