JAVA异常处理笔记,有你想知道的(try-catch-finally和throws)

异常

在程序中如果出现了不正常或者错误的情况就说明出现了“异常”;

异常的分类

1.error:java虚拟机无法解除的异常。(不可以进行异常处理)
2.Exception:由于编译性错误或者偶然因素所引起的一般性问题,可以针对代码处理。(可以进行异常处理)
3.error和Exception都继承与Throwable类在这里插入图片描述

处理异常的方法

1.遇到错误直接终止程序。
2.捕获异常,只有出现异常的情况下错误的才可以运行。
3.分为编译型(在源文件转换为可执行文件的过程)异常和运行时(可执行文件运行的过程)异常

常见的异常

1.FileNotFoundException//文件没有被找到
2.ClassNotFoundException//类没有被找到
3.NullPointerException//空指针异常
4.ArrayIndexOutOfBoundsException//数组越界异常
5.NumberFormatException//数字类型转换失败
6.ArithmeticException//分母不可为0

try-catch-finally

try{
//可能出现异常的代码
}
catch{
//处理异常的方式1
}
catch{
//处理异常的方式2
}

finally{
//一定可以执行的代码
}

说明

1.finally是可选的。
2.使用try可以使可能出现异常的代码包装起来,一旦出现异常,就会产生一个异常类的对象,在根据catch里的异常类型找到异常的处理方式。
3.异常一旦处理完成后,程序就会跳出try-catch代码段,继续执行其后代码。
4.catch的异常类型中如果没有父子关系,则谁在上谁在下都没关系。若有父子关系,则子类必须在父类之上,否则会报错。

代码示例
public class ExceptionText {
	public static void main(String[] args) {
		try {
			int[] arr = new int[3];
			System.out.println(arr[3]);
			System.out.println("执行了吗");//若在代码执行过程中发现异常,则异常处以下的代码将不会被执行
		}
		catch(ArrayIndexOutOfBoundsException e) {
			e.printStackTrace();
			System.out.println("发生异常");
		}//catch在相同的层次关系下可以不用管谁在前谁在后,若是父类例如Exception类必须在其子类之后
		finally {
			System.out.println("这里一定会被执行");
		}//finally是发现异常后一定会执行的代码,即使catch中也发生了异常
		//一般释放资源的代码会放在finally代码段中,例如:XXX.close()	
		
	}
}

throws

public static void method() throws IOEception{
}

说明

抛出方法体中的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值