异常
Java把异常作为对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类
在java API中已经定义了许多异常类,这些异常类分为两个大类,错误Error和异常Exception
Exception分支的重要子类RuntimeExcption(运行时错误),其他的为编译时异常
Error和Exception的区别:Error通常是灾难性的致命错误,是程序无法控制的和处理的,当出现这些异常时,java虚拟机(JVM)一般会选择终止程序;Exception通常情况下是可以被程序处理的。
捕获异常
try .... catch .....finally
try{
可能出现问题的代码 ;
}catch(异常名 变量名){
针对问题的处理 ;
}finally{
释放资源;
}
- try中的代码越少越好
- catch中要做处理,哪怕是一条输出语句也可以.(不能将异常信息隐藏)
- finally可写可不写
- catch可以处理多个异常。但是;平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面
throw和throws
- throws
用在方法声明后面,跟的是异常类名
可以跟多个异常类名,用逗号隔开
表示抛出异常,由该方法的调用者来处理
throws表示出现异常的一种可能性,并不一定会发生这些异常
- throw
用在方法体内,跟的是异常对象名
只能抛出一个异常对象名
这个异常对象可以是编译期异常对象,可以是运行期异常对象
表示抛出异常,由方法体内的语句处理
throw则是抛出了异常,执行throw则一定抛出了某种异常