Java Exception、Error学习

一、Exception(异常)、Error(错误)均继承自Throwable,表示可以被抛出,需要使用catch捕获。

  • IOException:I/O操作异常,一般在文件读写时捕获
  • ClassNotFoundException:找不到指定类的异常(编译时Class.forName)
  • TimeoutException:超时异常,Exception thrown when a blocking operation times out
  • OutOfMemoryError:内存溢出异常,扩展栈时无法申请到足够的内存空间
  • StackOverflowError:栈溢出异常,线程请求的栈深度大于虚拟机所允许的最
  • NoClassDefFoundError:编译的时能找到类,但在运行的时候找不到此类(运行时)

NoClassDefFoundError:Java虚拟机在编译时能找到类,而在运行时不能找到该类。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。与ClassNotFoundException的不同在于,这个错误发生只在运行时需要加载对应的类不成功,而不是编译时发生。

Java Exception、Error学习_基本类型

二、关于try、catch的一点记录
1、try catch 会产生额外的开销,不要用try 包住整个代码段
2、try中最好不要调用return、break、continue;finally不要处理返回值
3、try中return某值,而finally中修改了这个值,如果finally修改基本类型,则不影响返回值;
如果finally修改非基本类型