Java-错误与异常
什么是错误(Error)
错误通常是一些物理性错误,java虚拟机本身出现的问题,程序指令是处理不了的。
错误(Error)包括:StackOverflowError 堆内存溢出、OutOfMemoryError 堆内存溢出
什么是异常(Exception)
一般称人为规定的不正常现象为异常。
异常(Exception)包括:RuntimeException 运行时异常、编译时异常
Error和RuntimeException均属于运行时异常,在javac编译的时候不会提示和发现。
处理异常的手段
使用throws抛出异常:
使用给方法抛出的异常不处理,调用者进行处理。
- 只能在方法和构造方法结构上存在(抛出异常)
- 调用方法者处理异常
- 抛出的异常也可以有多个,先抛小再抛大
使用try{}catch(){}finally{}抛出异常:
要求
- try不能单独出现,后面必须跟着catch或者finally都可以,一般不会跟finally
- catch可以出现多个,要么多个catch捕获的异常没有继承关系,要么先捕获小的异常在捕获大的
- finally可有可无,若添加了这个结构,则必须执行,即使放在方法中,之前有retrun也要执行finally
- 注意方法内部返回值的问题
自定义异常
- 写一个类,继承Exception RuntimeException
- 类中可以些带String参数的构造方法,可以做细致的说明
- 通过throw关键字,new一个异常的对象