异常处理、日志框架学习笔记

目录

1.异常

1.1 异常体系结构

1.2 编译时异常的处理方式

1.2.1 throws(不推荐使用)

1.2.2 try...catch...(还不错,但没有第三种好)

1.2.3 前两种结合(最规范)

1.3 运行时异常的处理方式

1.4 增加程序健壮性的异常案例

1.5 自定义异常

1.5.1 自定义编译时异常

1.5.2 自定义运行时异常

2.日志 

2.1 日志技术体系结构和框架(主要学Logback) 

2.2 logback使用

2.3 Logback.xml配置文件


1.异常

1.1 异常体系结构

 

———————————————————————————————————————————

1.2 编译时异常的处理方式

1.2.1 throws(不推荐使用)

原理:不断往上抛异常不解决,直至抛到虚拟机导致程序死亡。

示例:

———————————————————————————————————————————

1.2.2 try...catch...(还不错,但没有第三种好)

示例:

———————————————————————————————————————————

1.2.3 前两种结合(最规范)

 相比起第二种优势在于知道底层的调用情况

示例:

———————————————————————————————————————————

1.3 运行时异常的处理方式

示例:

———————————————————————————————————————————

1.4 增加程序健壮性的异常案例

原理:防止用户乱输入导致程序崩溃 

———————————————————————————————————————————

1.5 自定义异常

throw是在方法内部直接创建一个异常对象并从此点抛出。

throws是用在方法声明上的,用于抛出方法内部的异常。

1.5.1 自定义编译时异常

自定义编译时异常继承自Exception类,在编译阶段就会报错。

 示例:

————————

———————————————————————————————————————————

1.5.2 自定义运行时异常

自定义运行时异常继承自RuntimeException类,使用方式与自定义编译时异常一致,区别只在于只在程序运行时出现错误才报错。

示例:

———————————————————————————————————————————

2.日志 

2.1 日志技术体系结构和框架(主要学Logback) 

 

———————————————————————————————————————————

2.2 logback使用

拷贝jar包到lib文件夹之后选中三个jar包右键Add as Library...添加到依赖库,之后点击“ok”,如图所示:

 

 

 一个简单的Logback日志搭建案例:

———————————————————————————————————————————

2.3 Logback.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="E:/log" />
    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志输出编码 -->
        <Encoding>UTF-8</Encoding>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </pattern>
        </layout>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/myApp.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </pattern>
        </layout>
        <!--日志文件最大的大小,超过了就会新建日志文件来记录新的日志信息-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>1MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
 
    <!-- level用来设置输出级别,若设为WARN,则大于等于WARN级别的日志信息都会输出 --> 
	<!-- 输出级别从小到大依次为 TRACE,DEBUG,INFO,WARN,ERROR(可以忽略大小写),默认为DEBUG   ALL为所有级别全部输出,OFF为所有级别都不输出 -->
    <root level="ALL">
		<!-- 设置控制台输出 -->
        <appender-ref ref="CONSOLE" />
		<!-- 设置日志文件输出 -->
        <appender-ref ref="FILE" />
    </root>
 
</configuration>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值