1.Java的异常处理是通过5个关键字实现的:
--> try,catch,finally,throw,throws
关键字 | 作用 |
---|---|
try | 执行可能产生的异常代码 |
catch | 捕获异常 |
finally | 无论是否发生异常,代码总能执行 |
throws | 声明异常,本身不做异常处理 |
throw | 抛出异常,异常处理的过程 |
2.关键字try,catch,finally
组成常用的异常处理结构
try{
//有可能出现异常的语句
}[catch(异常类型 异常对象)]{
//异常处理语句
}][finally]{
//一定会用到的语句
}]
catch
和finally
可选,但是不能同时省略
3.异常的分类
错误 | 中文 | 异常 | 中文 |
---|---|---|---|
VirtualMachineError | 虚拟机错误 | RuntimeException | 运行错误 |
OutOfMemoryError | 内存溢出 | IOException | IO异常(文件流异常) |
ThreadDeath | 线程锁死 | SQLException | SQL 异常 |
4.RuntimeException
异常 | 中文 |
---|---|
NullPointerException | 空指针异常 |
ArrayIndexOutOfBoundsException | 数组下标越界异常 |
ArithmeticException | 算术异常 |
ClassCastException | 类型转换异常 |
5.声明异常
public void 方法名 throws 异常类型[,异常类型]{
}
6.抛出异常
throw new 异常名([参数列表]);
7.日志(log)框架
(1)日志:
- 主要用来记录系统运行中一些重要信息
- 便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题后根据日志找到原因
(2)日志分类
SQL
日志、异常日志、业务日志
(3)日志主要用途
- 问题追踪
- 状态监控
- 安全审计
(4)xml和架构
1.XML
(eXtensible Markup Language-可扩展标记语言
)
与HTML代码基本类似,以标签的形式存在,但没有固定标签,XML中写的标签,都是给插件或者项目设定内容的——节点
(1)基础架构
-
首行——对当前XML文件的配置
version代表XML的版本
encoding代表当前文件的字节编码,使用utf-8
<?xml version="1.0" encoding="utf-8"?>
- 创建根节点,xml文档中必须有且只有1个根节点
- 配置log4j2.xml里的关键节点
<?xml version="1.0" encoding="UTF-8"?>
<configuration staus="OFF">
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%l] %-5level - %msg%n"/>
</Console>
<File name="log" fileName="log/test.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%l] %-5level - %msg%n"/>
</File>
</appenders>
<loggers>
<root level="all">
<appender-ref ref="Console"/>
<appender-ref ref="log"/>
</root>
</loggers>
</configuration>
(5)日志记录器的日志级别(从低到高)
- all(所有的状态):最低等级,用于打开所有日志记录
- trace(追踪):用于程序追踪输出
- debug(调试):指出细粒度信息时间,对高度应用程序是非常有帮助的
- info(详情):在细粒度级别上指明消息,强调应用程序的运行过程
- warn(警告):表示警告信息,即可能会出现的潜在错误
- error(错误):指出虽然发生错误事件,但仍然不影响系统的继续运行
- fatal(灾难级):指出将会严重的错误事件将会导致应用程序退出
- OFF(关闭):最高等级的,用于关闭所有日志记录
(6)使用log4j2
的步骤
1.导入包
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
2.创建Logger对象
private static Logger logger=LogManager.getLogger(类名.class.getName());
3.常用的log4j2的方法
public void debug(Object msg)//使用debug级别日志
public void debug(Object msg,Throwwable t)//使用debug级别日志
public void info(Object msg)//使用info级别日志
public void info(Object msg,Throwwable t)//使用info级别日志
public void warn(Object msg)//使用warn级别日志
public void warn(Object msg,Throwwable t)//使用warn级别日志
public void error(Object msg)//使用error级别日志
public void error(Object msg,Throwwable t)//使用error级别日志
public void fatal(Object msg)//使用fatal级别日志
public void fatal(Object msg,Throwwable t)//使用fatal级别日志