异常(Exception)

来源:互联网 发布:linux安装ftp服务器 编辑:程序博客网 时间:2024/05/18 01:27

什么是异常?

Java中对于运行程序过程中,出现了不可预期的,或者与期望不相符的状态时,提示用于做出相应处理过程的那个类叫做异常。


异常分为两类:

第一类:称为运行异常,代表程序在书写过程中,不会显示这个异常必须要被捕捉,即我们不捕捉这个异常我们的程序照样可以运行,如果出现这个异常则抛出;(为什么要有运行时异常,如果没有运行时异常那么你没写一行代码,就必须要捕捉n多个异常,脑补下那种画面,你写了一行程序,捕获一大堆异常,这绝对是你不想要的,所以要有运行时异常。(纯属个人见解,如有错误请提出,谢谢))

第二类:称为编译异常,代表出现在书写过程中,必须要捕捉或抛出的异常,比如我们自己定义的异常。


throw 代表当我们想手动抛出一个异常的时候,我们可以使用throw这个关键字。

自建的异常存在的最大意义在于,就是改变异常的类型,由父类该变成子类,方便catch做出不同的动作;

(finnally是在return之后执行

String str = "ccc";

 try{

System.out.println("aaa");

int a = 1/0;

return str;

} catch (Exception e) {

System.out.println("bbb");

return "bbb";

} finally {

System.out.println("ccc");

})




try{

可能抛异常的代码

}catch(ArithmeticException e){

抛出异常后所要执行的代码块(注意一个try可以有多个catch块)

e.printStackTrace();

}finally{

不管程序执行还是不执行,都一定会执行的代码块

}


try{

代码抛出异常(代码抛出异常之后,就不继续在向下运行)

return;(return不被执行,执行下面catch块)

}catch(){

}



int a = 4 ;

int[] b = {0,1,2,3,4};

try{

int c = a/0;(在这一行抛出异常之后,代码停止向下执行,找到相应异常catch块)

System.out.println(b[5]);

}catch(ArrayIndexOutOfBoundsException e){(这个异常与上面抛出异常不相符,继续向下寻找)

System.out.println("hello!");

}catch(ArithmeticException e){(直到找到相应异常,然后执行)

System.out.println("你好");

}



无论如何,写在try{}catch(){}finally{}中的finally块是一定会被执行的;