java中的异常
一、什么是异常
定义:在程序运行过程中
二、异常的分类
1、编译错误
不能直接运行,在编译阶段就报错
2、运行错误
能正常编译,但是运行的错误
3、逻辑错误
输出的结果不是自己想要的
三、异常的处理手段
1、try…catch…finally
1.1、try
1、作用:用来监控代码,监控可能发生错误的代码
2、特点:里面的代码不能放太多
1.2、catch
1、作用:用来捕获异常
2、语法:catch(类名 对象名)
3、特点:可以存在多个catch,但是只会执行一个
1.3、finally
1、作用:用来执行一些必须执行的操作
2、特点:不管是否有发生异常,都会执行的代码
除非遇到:1、System.Exit(1)
2、finally里面的代码也出现异常
3、程序死亡
4、CPU终止
1.4、三者之间的搭配
try是必须存在的,catch和finally之间二者选其一,也可以都存在
2、throw…throws
2.1、throw
作用:用来抛出异常,属于内部动作,有错误自己解决不了
位置:在方法体里面用
2.2、throws
作用:用来声明异常,属于外部动作
位置:在方法小括号后面使用
2.3、异常的特点
方法只要被声明了,就一定需要处理异常,如果没有处理,就会编译报错。
四、异常类的结构
1、异常类的父类
Throwable类
2、异常的子类
1、Error:错误,程序本身无法修饰的错误
2、Exception:java程序本身会抛出的错误,需要及时处理
3、Exception的子类是RuntimeException:运行时错误
3、java中常见的几种异常
1、InputMismatchException:输入类型不匹配异常
2、NullpointException:空指针异常
3、ArrayIndexOutofBoundsException:数组下标越界异常
4、StringIndexOutofBoundsException:字符串下标越界
5、ArithmeticException:算数计算异常
五、日志文件
1、日志文件的作用
把异常信息长久保存到文件
2、log4j配置文件
1、输出级别
log4j.rootLogger = debug,stdout,logfile
1、debug是指输出级别
fatal:严重错误
error:错误
warn:警告
info:信息
debug:调试
2、优先级
fatal—>error—>warn—>info—>debug
3、日志输出目的地Appender
ConsoleAppender:输出日志事件到控制台
FileAppender:输出到一个文件
4、日志布局类型Layout
HTMLLayout:HTML表格
SimpleLayout:以一种非常简单的方式格式化日志输出
PatternLayout:自定义格式
5、转换模式ConversionPattern
%d:用来设置输出日志的日期和时间
%m:输出代码中指定的消息
%n:输出换行
%l:输出日志事件的发生位置
%p:用来输出优先级
%F:用来输出文件名
%M:用来输出文件名