056_异常

1.常见的exception有那些?
运行时异常:空指针、数组下标越届
编译时异常:IO异常、Sql异常

2、什么是编译时异常,起到了什么作用?
将.java文件编译成.class时出现的异常。这个异常是让我们增加try……catch语句,增强代码的健壮性。加上try……catch之后,就算跑出了异常,程序也能正常执行。
而编译时异常通常都是由前人总结出来的,如IO异常,这些正规异常会被IDEA检测到,但是我们自定义的异常,IDEA就不会报错了。

编译时异常要是一直向上throws,一直到了JVM,就会终止程序。

3、什么是运行时异常?
运行时异常也可以使用try……catch……捕获异常,增强程序健壮性。但是要是不捕获的话,发生异常就会终止程序。

编译异常与运行时异常的根本区别是什么?

当我们调用throws编译异常的方法时,我们必须做处理。但是throws运行时异常的方法无所谓。

另外当throw编译时异常时,必须再方法上throws异常。运行时异常就无所谓。

throws编译异常,并不一定要throw编译异常。

但是throw编译异常,一定要throws编译异常。

其实我跟倾向于throw是抛出异常,throws是声明异常。如果抛出异常则一定要声名异常。如果我们声明了异常,则代表着我们的方法可能会发生异常。

4、什么是error?
硬件引发的错误,JVM内置了处理方案,告诉我们那个硬件出错了。


5、什么是异常呢?
代码运行时的硬件与语法不符合JVM规定,程序无法再JVM跑起来。

6.try……catch与异常类的关系是什么呢?
try……catch是处理异常的,使用try……catch就不用再throws。
我们的异常被catch捕获,
try{
  ****
  *****
}catch(IOException e){
  e.printStackTrace();//Throwable根类的方法
}

7.如何给异常类添加信息呢?
采用了有参构造方法,调用父类的方法添加了异常。
public CustomException(String message){
  super(message);
}

8.谁调用编译异常的方法,谁处理编译异常。通常而言我们说的异常都是编译异常。

我们一般也不try……catch……10/0,因为我们再程序中就直接完善了这种语句。

原文地址:https://www.cnblogs.com/pogusanqian/p/12527972.html