java程序中在运行的时候有可能产生异常,产生异常的时候我们也可以对他进行处理。
java中异常类Throwable是顶级的异常类。其中Error错误和Exception异常类都是他的子类。其中异常类又分为RuntimeException运行时异常类,与非运行时异常类。
Error和Exception的区别
Error是程序中无法预料的异常情况,这种异常发生后,会直接导致JVM不可处理或者不可恢复的情况,所以这种异常不可能抓取到的。
Exception是java程序运行中可预料的异常情况,咱们可以获取到这种异常,并且对这种异常进行业务外的处理。
RuntimeException运行时异常类与非运行时异常类
非RuntimeEception运行时异常必须在方法名上一定要在throws上声明抛出异常,同时也可以用try-catch用来对异常经行处理
RuntimeEceotion是运行时产生的异常可以在方法名上throws也可以不在方法名上进行throws抛出异常,同时也可以可以用try-catch用来对异常经行处理。
我们接下来看一个面试题
FileOutputStream的构造方法声明抛出java.io.IOException,则下面语句会有编译错误的是()
A.public void fun() throws IOException{ }
B. public void fun()
throws IOException {
new FileOutputStream(“fil.txt”);
}C. public void fun() {
try {
new FileOutputStream(“fil.txt”);
}catch(IOException e) { //TODO 处理语句
throw e;
} }
D. public void fun() throws IOException { try {
new FileOutputStream(“fil.txt”); } finally {
//TODO 处理语句 } }
这题的答案选择的是C因为java.io.IOException一定要在方法抛出异常 是个非runtimeException