java 异常

java异常

Java异常是一个描述在代码段中发生的出错的情况,Java异常可能是由Java运行时系统产生,或者是由你自己写的代码产生。被Java抛出的异常与违反语言规范或超过Java执行环境限制的基本错误有关。手工编码产生的异常基本上用于报告方法调用程序的出错状况。

Java异常处理通过5个关键字控制:try、catch、throw、throws和finally。

我们之前学习也遇到过不少的Java异常,比如空异常NullPointerException、数组下标越界异常ArrayIndexOutOfBoundsException、类型转换异常ClassCastException等。

而这些异常都是可以捕获并能处理的。

注意:任何异常抛出之后,程序也将不会往下继续走了。
例如:

try {
    int[] a=new int[3];
    System.out.println(a[10]);//此时访问a[10]肯定会抛ArrayIndexOutOfBoundsException异常
    //catch块能够捕获try块中抛出的异常
} catch (NullPointerException e) {
    //如果异常是NullPointerException异常,那么在这里异常就会被捕获,如果不是,就会继续往下看能不能被下一个catch块捕获。
    System.out.println("产生了空指针异常");
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("访问数组下标越界了");
} catch (Exception e) {
    //所有异常的父类,不管会抛出什么异常,都会在这里被捕获
    System.out.println("出异常了");
}

代码中声明了我想要的异常监控包含在一个try块中,如果在try中发生异常,它会被抛出。在下面我可以用catch关键字来捕获try块中产生的异常并自己可以处理这个异常。

系统产生的异常会在Java运行时系统自动抛出。但是也可以手动抛出一个异常,让上一层代码去捕获处理,用关键字throw。但是需要在方法后面通过throws关键字定义可能抛出的异常。

public static void main(String[] args) throws Exception{
	int a=10;
	int b=0;
	int c=a-b;
	if(c==0){
		throw new Exception("抛出这个异常");
	}
}

而finally块的代码不管try块中会不会抛出异常,都会执行finally块中的代码。

public class Demo {
 
	public static void main(String[] args) {
		try {
			int a=10/0;
		} catch (Exception e) {
			System.out.println("出现了异常");
		}finally{
			System.out.println("finally块的代码不管上面的try块会不会出现异常都会被执行");
		}
	}
}
执行的结果:
出现了异常
finally块的代码不管上面的try块会不会出现异常都会被执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值