t异常
什么是异常?
异常就是程序在运行的过程中所发生的不正常事件。
Java中,如何进行异常处理?
对可能会出现异常的代码块做出提前处理。
如何使用log4j
1.下载log4j的JAR文件,网址Apache log4j 1.2 -
2.日志的使用:
导包:Eclipse–选中src,点击Project–properties–Java Build Path–Libraries–dd External JARs…
创建log4j.properties文件:用来配置日志信息,右击src–选择new–file创建
编写配置文件信息;
##设置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
##把日志信息输出到文件:
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
输出级别
debug<info<warn<error<fatal
fatal:出现严重错误将会导致应用程序的退出
error:出现错误,但不影响程序继续运行
warn:表示会出现潜在错误
设置输出级别时,程序只输出级别相同或者高于他的信息
try-catch-finally块
try{
//业务代码
//...
// 出现异常,去执行catch
}
catch(exception ex){ //exception,所有异常类型的父类
ex.printStackTrace();//输出异常的堆栈信息
ex.getMessage();//返回异常描述的字符串
}
finally{
//无论程序是否出现异常,都会执行
}
组合:try-catch/try-finally/try-catch-finally
1.异常处理中出现return的执行顺序
try{ try{
return 1;
return; }
}catch{ catch{
return 1;
return; }
}finally{ finally{
return 1;
return; }
}
1.直接return | 2.return 1;(返回一盒数据类型) |
---|---|
先执行try、catch中return之前的语句,接着执行finally中的语句,返回去执行try、catch中的return | 依次执行,先执行try/catch中的代码,接着执行finally里面的代码,finally中的return覆盖掉try/catch中的return |
2.finally不被执行的唯一情况
3.多重catch
try{
//代码块
}catach(InputMismatchException e){
//说明异常
}catach(Exception e){
//其他异常
}
注意事项:
多重catch块的排列顺序必须是从子类到父类,如果父类放到前面,,则后面的异常不被执行
throw,throws
- throw用于抛出异常(throw new exception(“ ”));位于方法体内部,可作为单独语句使用,只能抛出一个异常对象
2.throws用于声明异常,必须跟在方法参数列表的后面,不可单独使用,后面+异常类,可用多个
3.使用throw抛出异常时,必须显示处理异常/接着往上一级抛出异常
异常分类
常见的异常类型
异常 | 说明 |
---|---|
Exception | 异常层次结构的根类 |
arithmeticexception | 算数异常 |
arrayindexoutofboundsexception | 数组下标越界 |
nullpointerexception | 空指针异常 |
classnotfoundexception | 不能加载所需的嘞 |
InputMismatchException | 欲得到的数据类型与实际输入的不匹配 |
IllegalAgumentException | 方法接受到非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatExcpTion | 数字格式转换出错,如把"asd"转换成数字 |
异常分类
1.基类为Throwable,分为Error和Exception,
2.Error表示仅靠程序自身无法恢复的严重错误,灾难性错误
3.Exception分为RuntimeException和IOException
4.RuntimeException运行时异常,不要求程序必须做出处理,也称unchecked
5.checked异常(非运行时异常),程序必须捕捉病处理异常
恢复的严重错误,灾难性错误
3.Exception分为RuntimeException和IOException
4.RuntimeException运行时异常,不要求程序必须做出处理,也称unchecked
5.checked异常(非运行时异常),程序必须捕捉病处理异常