异常

异常

一、异常

1、定义

在程序运行过程中出现错误。

2、分类

异常分为3类:

1、运行报错(或称为:运行时异常,RuntiemException):能够正常编译,但是运行时报错。

2、编译报错/语法报错(属于非运行时异常:CheckedException):不能运行,在编译时就会报错。

3、逻辑异常(也属于非运行时异常:CheckedException):结果与预期的不符合,但是能够正常运行,不会出现报错的现象。

处理异常的手段:

1、try-catch-finally:处理异常

2、throw-throws:抛出异常

3、默认情况:遇到错误的默认处理手段是:程序直接终止在本行代码。

3、异常结构

Throwable:所有异常的父类;

Error:错误,这是程序本身无法修复的错误,是Throwable的子类;

Exception:Java程序本身会抛出的错误,需要我们及时的处理。

4、try-catch-finally

1、try:监控代码,监控可能发生错误的代码,如果代码没有错误,就执行完毕,如果有错误就进入catch,try里面的代码不宜过多。

2、catch:捕获异常,语法:catch(类名 对象名),类名:异常类名。

catch可以一次性出现多次:要求:1、子类必须在父类的前面;2、catch后面的类型不能出现相同的;3、只会执行一个,第一次匹配成功之后,就不会执行后面的异常了。

3、finally:无论是否发生异常都要执行finally。

finally的除非:

1、如果遇到了System.exit();就不会执行finally;

2、finally里面的代码也报错了,就不会执行finally

3、程序死亡

4、cpu终止

注:try是必须要有的,catch和finally二选一,也可以三个一起用。

5、throw-throws

1、throw:抛出异常—内部动作;有错误自己解决不了的抛出去给别人解决;

语法:throw 异常对象名; 位置:方法里面。

2、throws:声明异常—外部动作;请求外援的动作;

语法:throws 类名; 位置:方法小括号外面。

注:调用的方法一旦声明了异常,那外援一定要处理异常,如果没有处理,则编译报错。

二、日志

1、定义和作用

定义:

作用:把异常信息长久保存文件。

2、log4j 架包

Java里面是没有提供日志框架的架包,需要自己导入架包;

日志架包:log4j,log4j2,slf4j,logback

今天讲的是log4j架包;

导入步骤:

1、右击项目异常_第1张图片

2、异常_第2张图片

3、找到这个架包

异常_第3张图片

4、将log4j架包复制到jar的文件夹里面去

在这里插入图片描述

5、附加进去,右击log4j架包
异常_第4张图片
6、在列表中查看
在这里插入图片描述

7、查看是否附加进去了

异常_第5张图片

8、只要有这个log4j的架包就可以了

异常_第6张图片

学习步骤:

1、导入jar架包;

2、有固定的名称:log4j.properties,有固定的位置:放在src里面

3、配置文件

Logger log = Logger.getLogger(TestLogger.class);

1、设置输出级别,目的地可以有多个;

log4j.rootLogger = debug,con,warn,error,fatal

日志记录:分等级(小----大)

debug---->调试

info----->信息

warn----->警告

error----->错误

fatal----->严重错误

### 设置Logger输出级别和输出目的地  ###
log4j.rootLogger=debug, stdout,logfile

### 把日志信息输出到控制台  ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target=System.err  
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout  

### ConsoleAppender 控制台,System.err 控制字体颜色 SimpleLayout 布局###

### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender  
log4j.appender.logfile.File=jbit.log  
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%l %F %p %m%n  

### FileAppender 输出到文件; jbit.log 文件名称;PatternLayout 布局;ConversionPattern自定义布局,自定义布局要自己写格式;%d{yyyy-MM-dd HH:mm:ss}%l %F %p %m%n 这就是自己写的###

2、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CNHv1x1L-1585098759240)(C:\Users\acer\Pictures\Saved Pictures\Image 8.png)]

bit.log 文件名称;PatternLayout 布局;ConversionPattern自定义布局,自定义布局要自己写格式;%d{yyyy-MM-dd HH:mm:ss}%l %F %p %m%n 这就是自己写的###


2、自定义格式的符号表示![在这里插入图片描述](https://img-blog.csdnimg.cn/20200325091720538.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200325091734527.png)

你可能感兴趣的:(异常)