java基础(jdk1.8)
**
异常处理
**
Java里异常处理是一个要掌握的技能
异常(Exception)和错误(Error)是两个不同的概念,要区分其概念和处理方式。
Error
先看error是其概念较为简单。
Error: 程序运行或执行的不可抗拒的阻力
int a = null;
//error就是诸如这样的写了错误的语句
由此可以看出,error就是我们在写程序代码的时候因为疏忽或其他原因必须修改的程序语句或代码块
error就是我们必须克服的问题,而且必须将其改正确才能运行程序
Exception
Exception: 程序出现一些无法继续执行的阻力
1.运行期异常
程序可以运行,但到出现异常的位置,程序会自动退出,并返回-1(正常退出返回0)
int [] arr = new int[10];
arr[arr.length] = 0;
//这里编译通过,但运行时,会报一个
//ArrayIndexOutOfBoundsException的异常(数组下标越界)
2.编译器异常
程序在编译期,编译器就会显示其错误的异常。例:
FileInputStream f = new FileInputStream("filename");
处理异常
我们处理异常一般有两种方式:捕获和抛出异常
1.捕获异常
try{ … }catch(){}
try{
//异常语句块或可能发生异常语句块
}catch(){
//发生异常后的处理
}finally {
//统一出口(不管发不发生异常都会执行)
}
注意:
try和catch必须有,而finally是可选参数
发生异常后,try块直接跳过,执行catch内语句,然后执行finally内语句(如果有finally)
如果未发生异常,则不会执行catch的语句块
2.抛出异常
出现异常时不进行处理,而是沿着调用向上传递,让调用其方法进行处理,叫抛出异常(throws),是一种消极的处理机制。
先产生异常对象,然后通过throw语句进行抛出
IOException o = new IOException();
throw o;
注意:
可以抛出的异常必须是Throwable或其子类的实例
异常类继承关系
最后:异常不要滥用,简单逻辑问题使用if while等判断
上一篇 》String类
下一篇 》Java内存