异常处理
thorws 和 throw
throws
: 声明异常 本身不做处理的异常 当我们在方法内声明异常了 调用此方法的方法来处理此异常throw
: 抛出异常 处理异常的过程
throw示例
try {
int a = 1/0; // 会触发算术异常 ArithmeticException异常
} catch (Exception e) {
e.printStackTrace();
}
throws示例
public static void main(String[] args) {
try {
method1();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void method1() throws Exception {
try {
int a = 1/0; // 会触发算术异常 ArithmeticException异常
} catch (Exception ex) {
throw new Exception(); // 扔出异常交给调用此方法的代码块处理
}
}
如果需要捕捉多个异常 Exception异常需放在最后个catch分支内
void printStackTrace() | 输出异常的堆栈信息 |
---|
日志记录框架 log4j2
步骤
- 配置log4j2配置文件
- 创建日志容器logger对象
- 使用logger对象对应危险等级提示来记录日志
Xml: eXtensible Markup Language 可扩展标记语言 与HTML类似
Xml没有固定标签 标签用来给项目或者插件设定内容的 把这个标签叫做节点
Xml也有固定写法
首行必须是对当前xml文件的配置
我们需要创建一个根节点 xml文档当中要求文件必须有且只有一个根节点
log4j2 示例 xml文件
<?xml version="1.0" encoding="utf-8" ?>
<!--
version代表xml版本 现在为1.0
encoding代表配置当前文件的字节编码 使用国际编码utf-8
-->
<configuration status="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>
日志等级
- | - |
---|---|
all | 最低等级,用于打开所有日志记录 |
trace | 用于程序追踪输出 |
debug | 指出细粒度信息事件,对高度应用程序是非常有帮助的 |
Info | 在粗粒度级别上指明消息,强调应用程序的运行过程 |
warn | 表示警告信息,即可能会出现的潜在错误 |
error | 指出星然发生错误事件,但仍然不影响系统的继续运行 |
fatal | 指出将会严重的错误事件将会导致应用程序退出 |
OFF | 最高等级的,用于关闭所有日志记录 |
导包
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
创建logger对象
private static Logger logger = LogManager.getLogger(类名.class);
使用logger对象记录日志
logger.日志等级("日志信息")
完整示例
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class TestMain {
private static Logger logger = LogManager.getLogger(TestMain.class);
public static void main(String[] args) {
logger.error("Hello World");
}
}