4.异常
1.多个catch语句块的异常捕获顺序:把子类放前面,因为子类的异常信息比父类更详细
2.finally语句块可以保证,当你的线程异常终止的时候,finally里面的语句也可以得到执行(如:执行一些关闭数据库或者文件I/O流的操作)
3.Error类和Exception类的父类都是throwable类
区别:
Error类一般是指与虚拟机相关的问题,如系统崩溃,内存空间不足
Exception类表示程序可处理的异常,可以捕获且可能恢复
4.子类重写父类的方法时声明抛出异常不能比父类范围大
5.运行时异常与一般异常有何异同
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常(I/O流、SQL语句等),但是并不要求必须声明抛出未被捕获的运行时异常(calssnotfound、nullpointer等)。
6.给我一个你最常见到的runtime exception
常见的运行时异常有如下这些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException