1. 整个系统异常如图所示:
异常分两种:
编译时异常:在编写代码时,就报错
运行时异常:执行java代码时报错
2.Error:系统内部错误
3.Exception:该类是所有异常类的父类
异常机制中处理形式:
a.try...catch...:捕获,一般用在客户端
语法:
try{
有潜在异常抛出的语句组
}catch(异常类型 异常形参){
错误的处理机制
//1.打印追踪栈帧
//形参.printStackTrace();
//2.获取错误栈帧的内存地址
//形参.getStackTrace();
//3.提示错误信息
//形参.getMessage();
}
1).catch语句可以有多个,但是从上往下,必须是从子类到父类亦或没有继承关系
2).即使有多个catch语句,也只会执行一个,即哪个最先捕获到错误,哪个先执行catch
注: finally 语句块 :
try{
//出错代码
}catch(异常类型 形参){
//错误处理措施
}finally{//放在catch语句的最后
//finally中的语句块无论是否捕获到异常都会执行
}
b.throws:抛出异常,一般适用于类库端,通过该方式,并不会处理异常
语法: 修饰符 返回类型 方法名(参数列表) throws 异常类1,异常类2...
c.自定义异常类:适用于可以预见的常见运行错误
规定:
1):必须继承一个已经存在的异常类,如Exception...
2):有一个公共的无参构造方法
3):有一个有参构造方法,该方法中使用super(参数)调用父类的构造方法
public class AuthException extends Exception {
public AuthException() {
}
public AuthException(String message) {
// 传入的message,就是错误信息
super(message);
}
}