异常常见面试题

概念题:

1.java中用来抛出异常的关键字是什么?

throw

2.异常和Error(错误)的区别?

error:是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception :表示可恢复的例外,这是可捕捉到的

3.什么是异常?

所谓异常是指程序在运行过程中发生的一些不正常事件。(如:除0溢出,数组下标越界,所读取的文件不存在)

4.什么类是所有异常类的父类

Throwable类

5.java虚拟机能自动处理的异常是什么?

运行异常

6.Try-catch-finally的执行过程

(1)try{}语句块中放的是要检测的java代码,可能有会抛出异常,也可能会正常执行
(2)catch(异常类型){}块是当java运行时系统接收到try块中所抛出异常对象时,会寻找处理这一异常catch块来进行处理(可以有多个catch块)
(3)finally{}不管系统有没有抛出异常都会去执行,一般用来释放资源。除了在之前执行了System.exit(0)

7.常见的异常?你的理解。

常见异常:RuntimeException,IOException,SQLException,ClassNotFoundException

8.final, finally, finalize的区别。

final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。(在垃圾回收的时候会调用被回收对象的此方法。

9.Java中的异常处理机制的简单原理和应用。

     当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。

10.运行时异常与一般异常有何异同?

Java提供了两类主要的异常:运行时异常runtime exception和一般异常checked exception。checked 异常。对于后者这种异常,JAVA要求程序员对其进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
运行时异常我们可以不处理。这样的异常由虚拟机接管。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。

11、

4、你平时在项目中是怎样对异常进行处理的。

(1)尽量避免出现runtimeException 。例如对于可能出现空指针的代码,带使用对象之前一定要判断一下该对象是否为空,必要的时候对runtimeException

也进行try catch处理。

(2)进行try catch处理的时候要在catch代码块中对异常信息进行记录,通过调用异常类的相关方法获取到异常的相关信息,返回到web端,不仅要给用户良好

的用户体验,也要能帮助程序员良好的定位异常出现的位置及原因。例如,以前做的一个项目,程序遇到异常页面会显示一个图片告诉用户哪些操作导致程序出现

了什么异常,同时图片上有一个按钮用来点击展示异常的详细信息给程序员看的。

你可能感兴趣的:(学习日记,Java异常处理,Java基础)