23.运行时异常(Runtime)与检查异常(Checked)有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法
必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常
。
运行时异常为编程时的异常,应该在生产环境正常运行状态下不会发生的异常
检查异常通常为一种设计模式,表示某处执行时可能因为条件不足而出现异常,程序必须对此进行处理,JVM会提示编程人员捕获或重新抛出异常
24.error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出,不可能指望程序能处理这样的情况。
exception表示一种设计或实现问题,也就是说,它表示如果程序运行正常,正常情况下从不会发生的情况。
25.请写出你最常见到的5个RuntimeException。
NullPointerException、
ArrayIndexOutOfBoundsException、
ClassCastException、
IllegelArgumentException、
SecurityException。
26.Java语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- throws为向上抛异常,当前方法无法处理此异常,需要上层方法进行处理
- throw程序出错时,手工抛出异常,最好能把异常进行堆栈式抛出
- try尝试执行,里面的语句可能出现异常,如出现异常需要处理
- catch处理try中出现的异常
- finally在try后执行清理操作,用于释放资源
- 在try中可以抛出异常