J2SE基础夯实系列之异常体系

           Exception体系包括RuntimeException体系和其他非RuntimeException的体系 :
① RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。 
②其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

所以运行时异常是自动给报出来的,是程序的错误,是必须要解决的问题,try catch语句无法解决,但是非运行时异常,例如IO相关的,必须使用try catch语句处理。



如果一个新手去一家软件公司面试,运行时异常与编译时异常是有很大概率要被问到的,这些属于基本概念。
1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如你提到的ArrayIndexOutOfBoundsException,数组下标越界,
这个属于代码有问题,数组定义的长度不够实际使用,不处理肯定会报错,如果你操作某个模块发现能正常运行,
那只是因为代码还没跑到这个错误的地方而已。。控制台一旦报RuntimeException,就必须要处理。。
没有例外的。而且,处理RuntimeException,不是try-catch能解决的。。try-catch在这里使用毫无意义。 
2.不是RuntimeException,就是编译时异常,异常只有这两种了。比如你在处理文件流时的I/O问题,就属于编译时异常。
这个时候用thr{}catch 来捕获或者 throws即可。 3.error,就不在这里赘述了。 

根据实际开发经验的结论,纯手敲。。
NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。
 IllegalArgumentException - 传递非法参数异常。 ArithmeticException - 算术运算异常 
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常 IndexOutOfBoundsException - 下标越界异常 
NegativeArraySizeException - 创建一个大小为负数的数组错误异常 NumberFormatException - 数字格式异常 、
SecurityException - 安全异常 UnsupportedOperationException - 不支持的操作异常 

posted on 2012-08-06 15:33  AllenZhao  阅读(179)  评论(0编辑  收藏  举报

导航