一、异常
1.什么是异常
异常是指在程序的运行过程中发生的不正常是事件,他会中断正在运行的程序。
2.捕获异常
try:执行可能产生异常的代码
catch:捕获异常
finally:无论是否发生异常,代码总能执行
3.声明异常
throws:声明方法可能要要抛出的各种异常
4.抛出异常
throw:手动抛出异常
5.第一种情况:正常
public void method(){
try{
//代码段(此处不会产生异常)
}catch(异常类型 ex){
//对异常进行处理的代码段
}
//代码段
}
6.第二种情况:出现异常
public void method(){
try{
//代码段1
//产生异常的代码段2
//代码段3
}catch(异常类型 ex){
//对异常进行处理的代码段4
}
//代码段5
}
7.第三种情况:异常类型不匹配
public void method(){
try{
//代码段1
//产生异常的代码段2
//代码段3
}catch(异常类型 ex){
//对异常进行处理的代码段4
}
//代码段5
}
8.加入用户自定义的处理信息
System.err.println(“出现错误:被除数必须是整数,”+“除数不能为0”);
9.调用方法输出异常信息
e.printStock Trace();
10.异常对象常用的方法
方法名 | 说明 |
---|---|
void printStack Trace() | 输出异常的堆栈信息 |
String getMessage() | 返回异常信息描述字符串,是printStack Trace()输出信息的部分 |
11.常见的异常类型
异常类型 | 说明 |
---|---|
Exception | 所有异常的父类 |
ArithmeticException | 算术异常 不符合数学的相关规定 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 空指针异常 Pet pet=null; pet.age=9; |
ClassNotFoundException | 加载的类找不到 |
IllegalArgumentException | 方法接收到非法参数 |
ClassCastException | 类的转换异常 dog–>Cat |
NumberFormatException | 数据转换异常 “中国”–>int |
二、异常处理机制三个模块的搭配问题
1.try必须有
2.try不能独立存在
三、异常的执行顺序 try-catch-finally
1.有异常:try–>catch–>finally
2.无异常:try–>finally
3.try块一旦发生异常会立即跳入catch进行处理
四、多重catch
1.使用场景:一段代码可能发生多种不同类型的异常时
2.摆放顺序:先子后父,将最可能发生的异常往前放
五、异常的分类
1.throwable:错误和异常的父类
2.Error:错误,程序子身无法解决的严重问题
3.Exception:异常
4.检查异常:SQLException+ClassNotFoundException
六、日志
1.主要用来记录系统运行中一些重要操作
2.日志级别:代表日志信息的严重程度fatal>error>warn>info>debug
3.日志分类
(1).SQL日志,异常日志,业务日志