Java第12讲
异常的理解
异常:异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序
错误:一般程序员无法解决的问题(注意:此问题指的不是异常),称为错误,例如:内存溢出
1、编译异常 运行异常
编译异常:在编译过程中,JVM通知程序员此处代码有问题时,称为编译异常。
运行异常:编译通过,在运行时产生的异常,称为运行异常。
2、异常处理:捕获 申明 抛出
异常捕获:
try{代码块}catch(Exception e){代码块}finally{代码块}
在try、catch、finally中申明的变量,不能在本代码块之外使用
执行顺序:将有可能产生异常的代码写入try块中,代码执行过程中默认执行try块中的代码,当try块中的代码产生异常时,跳转到catch块中执行,finally块不管任何情况都会执行。
注意:当代码执行不产生异常时,则只执行try块中的代码。
注意:在代码产生异常时,已经执行过的代码依然生效。
注意:异常捕获时需要在catch的小括号中申明对应的异常类型。
注意:finally开无论如何都会执行,在try和catch块中加入return,则执行顺序将变为:return之前执行finally,之后再return。
注意:异常信息最后打印。
注意:catch块可以有多个
异常申明:throws关键字表示异常申明,写在方法参数列表后面,方法体前面,关键字后面跟异常类型,多个异常类型使用逗号(",")间隔
注意:如果申明的异常为具体类型,则不需要在调用该方法时捕获异常,如果申明的异常为Exception(即:没有具体类型),则在调用该方法时需要使用异常捕获来处理。
3、常见异常:
1、除数为0 :java.lang.ArithmeticException: / by zero
2、数组下标越界:java.lang.ArrayIndexOutOfBoundsException: 3
3、空指针异常:java.lang.NullPointerException
try、catch、finally语句总结:
1 try、catch、finally语句中,如果只有try语句有return返回值,此后在catch、finally中对变量做任何的修改,都不影响try中return的返回值。
2、try、catch中有返回值,而try中抛出的异常恰好与catch中的异常匹配,则返回catch中的return值。
3 如果finally块中有return 语句,则返回try或catch中的返回语句忽略。
4 如果finally块中抛出异常,则整个try、catch、finally块中抛出异常.并且没有返回值。
所以在使用try、catch、finally语句块时需要注意以下几点:
1 尽量在try或者catch中使用return语句。通过finally块中达到对try或者catch返回值修改是不可行的。
2 finally块中避免使用return语句,因为finally块中如果使用return语句,会显示的忽略掉try、catch块中的异常信息,屏蔽了错误的发生。
3 finally块中避免再次抛出异常,否则整个包含try语句块的方法回抛出异常,并且会忽略掉try、catch块中的异常。
4、课外 1、jar包:类库
导入架包–> 将jar包添加到项目路径 —> 使用
2、属性文件(后缀为.properties的文件)
此种文件为配置文件,文件中每一行为个键值对,一般以等号(“=”)或者冒号(“:”)连接,前面的为键,后面的为值。
3.日志信息的优先级从高到低有error、warn、info、debug