Java面试总纲(持续更新!)
https://libusi.blog.csdn.net/article/details/104268324 目录
#、什么是检查异常,不受检查异常,运行时异常?并分别举例说明。
#、给我一个你最常见到的runtime exception、场景及解决方案
#、描述一下Java异常层次结构
#、什么是检查异常,不受检查异常,运行时异常?并分别举例说明。
#、Finally块一定会执行吗?
正常情况下,当在try块或catch块中遇到return语句时,finally语句在方法返回之前还是之后被执行?
Try、catch、finally语句块的执行顺序。
#、error和eception的区别?
--------java.lang.Throwable:
Throwable:可抛出的。
|--Error:称为错误,由java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。
|--Exception:
所有异常类的父类,其子类对应了各种各样的可能出现的异常事件,一般需要用户显示的声明或捕获。
Java中Exception和Error都是Throwable的子类,
Exception用于用户程序可以捕获的异常,
而Error则定义了不期望被用户程序捕获的异常。‘
异常处理完成后, Exception会在下一个垃圾回收过程中被回收掉。
#、Java中的两种异常类型是什么?
异常分两种大的异常类型,运行异常和受检查异常,这两种异常的区别:
1、运行时异常((RuntimeException, 又叫非检查异常 )
运行异常的特点是 Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。
2、受检查异常
除了运行异常外,其他异常都属于受检查异常,这种异常的特点是要么用 try...catch捕获处理,要么用throws语句声明抛出,否则编译不会通过。
两者的区别
非检查异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误的操作。一旦出现错误,建议让程序终止。
受检查异常表示程序可以处理的异常。如果抛出异常的方法本身不处理或者不能处理它,那么方法的调用者就必须去处理该异常,否则调用会出错,连编译也无法通过。
***********************************************************
#、给我一个你最常见到的runtime exception、场景及解决方案
NullPointerException,
NoSuchElementException,
EmptyStackException ,
ClassCastException,
IllegalArgumentException,IllegalStateException,
IndexOutOfBoundsException,
SystemException,
ProviderException,
ProfileDataException,
MissingResourceException,
NegativeArraySizeException,
BufferOverflowException, BufferUnderflowException,
ArithmeticException, ArrayStoreException, CannotRedoException, CannotUndoException, CMMException, ConcurrentModificationException, DOMException,IllegalMonitorStateException, IllegalPathStateException, ImagingOpException, RasterFormatException, SecurityException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
#、throw 和throws关键字的区别:
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上。
Java面试题-异常
最新推荐文章于 2023-05-18 14:34:34 发布