Java异常
Error和Exception的区别
Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。
五个关键字try,catch,finally,throw,throws
try
这个关键字是用来监控代码块里的异常,并返回这个异常。
catch
这个关键字用来捕获异常,如果在try中捕获到的异常是括号中的异常,那么就会执行catch代码块里的代码,而且执行结果不会再报错。
finally
这个是用来善后的,不论catch有没有执行,finally里的代码都会被执行。
小结
try、catch、finally可以连用
形式如下
try{
code;
}
catch(异常类型){
code;
}
catch(异常类型){
code;
}
finally{
code;
}
finally不是必需的,但是要捕捉异常就必须得有try和catch。catch也可以多用,然后捕获多个异常。它会从上往下依次捕获,如果有某类型异常在上面就已经被捕获,那么在下面的catch就捕获不到该异常了,也就不会执行代码块里的代码,会提示错误。
throw
主动抛出异常,代码不会报错可以正常运行。
if(条件){
throw 异常类型;
}
一般用于方法中
throws
也是主动抛出异常,当方法中无法处理这个异常时,在方法上抛出这个异常。
自定义异常
写一个类继承Exception,里面写一些自己对该异常的处理方法就行。