一:异常
1.异常是什么?
在程序运行过程中出现的错误
2.异常分类
a.编译错误/语法错误【不能运行,在编译阶段就报错】
b.运行错误【能正常编译,但是运行的错误】
c.逻辑错误【能正常编译,能正常运行,但是与预期的结果不一样】
3.默认处理手段
程序直接终止在错误代码行
4.处理异常手段
1. try-catch-finally 合作处理异常【try是必选,catch和finally可以选其一】
A. try
作用:监控可能发生错误的代码
程序流程:
无异常:如果try里面代码没有发生异常,则整个try执行完毕
有异常:如果try里面有异常,则try异常代码后面的代码不会执行,进入相对应的cathch模块
B. catch
作用:捕获catch里面指定类的异常
语法:
catch(类名 对象名),//类名指发生异常对应的类名
多重catch:【可以一次性出现多个catch】
要求:子类必须在父类的前面;catch后面的类型不能出现相同的
结果:只会执行一个catch模块,执行第一次匹配到catch模块
C. finally
用途:只要出现finally模块,不管前面是否出现异常,最后一定会执行的代码
不会执行finally模块的情况:
四种情况 |
---|
遇到了System.eixt(1); |
finally里面的代码也出现异常 |
程序死亡 |
cpu终止 |
2. throw-throws合作抛出异常
A. throw【内部动作】
作用:抛出异常
语法:
throw 异常对象名;
位置:方法里面
B. throws 【外部动作】
作用:声明异常
语法:
throws 类名;//如果是多个类名,可以用逗号隔开
位置:方法名小括号后面
【注意: 如果抛出异常或者声明了异常,一定要进行处理,用try或者throws】
二:日志 log4j
1.作用:
把异常信息长久保存到文件
2.步骤
a. 导入jar包
b. 定义配置文件:log4j.properties(固定文件名+固定位置)
c. 使用:Logger
3.日志等级【从小到大】
等级 | 意思 |
---|---|
debug | 调试 |
info | 信息 |
warn | 警告 |
error | 错误 |
fatal | 严重错误 |
4. 目的地
1、控制台:ConsoleAppender
输出到控制台显示的颜色
System.err(红色)
System.out (黑色)
2、log文件:FileAppender
5.布局类型
类型 | 意思 |
---|---|
SimpleLayout | 简单格式 |
HTMLLayout | html格式 |
PatternLayout | 自定义格式 |
6.转换模式(ConversionPattern)
类型 | 意思 |
---|---|
%d | 设置日志的日期和时间 |
%m | 输出代码中指定的内容 |
%n | 换行 |
%l | 输出日志事件的发生位置 |
%p | 输出优先级 |
%F | 输出文件名 |
%M | 输出方法名 |