异常
异常
程序出现非正常执行情况
异常的体系
Throwable
/ \
Error Exception
/ \
RuntimeEception CheckedException
异常的分类
Error:错误,一般不需要程序员管理,由java虚拟机生成并拖出
Exception:异常
RuntimeEception:运行时异常:运行时发现的异常 解决方法:增强程序的健壮性
CheckedException:检查时|编译时异常:编译期间的异常 解决方法:通过异常处理的方法来解决
异常的处理
出现异常,会影响代码的执行,编译时异常,无法继续向下执行
throws:抛出异常
把问题抛给上一层来解决,
try...catch:异常捕获
try{
出现异常的代码
}catch(异常 变量){
}
...
catch(异常 变量){
}finally{
无论try是否出现异常,都会执行的代码
}
一个try后可以添加多个catch,至少一个catch,
catch捕获的异常较小定义在上面,否则定义在较小的下面
自定义异常
直接|间接继承Exception,运行时异常直接|间接继承RuntimeEception类,编译期间的异常直接|间接继承CheckedException类
eg:throw:自定义异常
package com.shsxt.demo;
public class CustomException {
public static void main(String[] args) {
int age=-1;
if(age<=0||age>=150){
try {
throw new AgeException(age+"年龄不符合");
} catch (AgeException e) {
age=18;
e.printStackTrace();
System.out.println(age);
}
}
}
}
class AgeException extends Exception{
//空构造
public AgeException() {
// TODO Auto-generated constructor stub
}
//带参构造
public AgeException(String message) {
super(message);
}
}
throws:抛出异常