java中的异常
什么是异常?
在程序运行的过程中,可能会遇见一些意外,(由于程序猿自己的代码逻辑不合法,或jvm的一些异常)并没有按照理想的情况运行,我们称这些意外为异常。
异常的英文是:Exception
异常的简单分类
- 检查性异常:是由用户的不合理输入而引起的异常。(如果用户输入x/0那么程序就会异常)
- 运行是异常:由于程序猿的逻辑疏忽,在编译时异常无法被察觉,运行时才会出现异常。
- 错误:错误不是异常,而是脱离程序猿的问题。在编译中也是无法被察觉的。
异常的体系结构
java中,把异常当做对象来处理,并定义一个类java.lang.Throwable作为所有异常的根类。
java中有很多异常,但这些异常可以分为两大类。
- Error(错误)
- Exception(异常)
异常一般是由程序逻辑错误而引起的,我们的程序应该从逻辑角度尽可能避免。
错误一般是致命的,它会导致程序崩溃
在以后的学习中,我们会慢慢接触各种类型的异常,学无止境。
如何处理异常
处理异常分为抛出异常和捕捉异常
抛出异常:
- 一般在方法中抛出异常,通过throws关键字+异常类型来捕捉方法抛出的异常。
- 通过throw关键字+new+异常类型来捕捉语句的异常
public void test(int a,int b) throws ArithmeticException{//方法抛出异常
// 手动捕获异常
// 但是这个算术异常,系统会自动捕获,一般不用写出来
if(b==0){
throw new ArithmeticException();//语句块抛出异常,然后传给方法
}else {
System.out.println(a/b);
}
对于抛出的异常,我们需要捕捉,然后处理,不然会影响我们的程序
捕捉异常:
通过try关键字检查语句
try { //try监视器,如果代码块的语句为异常,则捕获这个异常,不异常则返回结果。
new Exception1().a();
}
catch (Error e) { //用来捕获异常,括号里面(异常类型+异常名称)
System.out.println("程序异常");
}
通过catch关键字来捕捉异常
finally { //处理异常完之后的工作,可有可无。
System.out.println("finally");
}
通过finally关键字来做最后的处理工作