异常处理
一、对于异常处理,有以下几种种方式:
1.用tryCatchFunally代码块处理,格式为:
try{
编写可能会出现异常的代码
}catch(异常类型 e){
处理异常的代码
//记录日志/打印异常信息/继续抛出异常
}finally{
必须执行的代码块
}
finally代码块:有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的,但如果没有要必须只晓得程序,就不写finally代码。 通常,当我们在try语句块中打开了一些物理资源(磁盘文件/网络连接/数据库连接等),我们都得在使用完之后,最终关闭打开的资源。
2..用throw关键字,使用方法:
-
创建一个异常对象。封装一些提示信息(信息可以自己编写)。
-
需要将这个异常对象告知给调用者。怎么告知呢?怎么将这个异常对象传递到调用者处呢?通过关键字throw就可以完成。throw 异常对象。
throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。
使用格式:
throw new 异常类名(参数);
3.用throw关键字直接在可能会产生异常的方法名的右边声明相关类型的异常,格式为:
修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{
// 代码块
}
二、自定义异常
自定义异常类继承于Exceptio类,有不带参数的构造器,也有带一个参数的的构造器(继承父类带参构造器)。
Log的用途
不管是使用何种编程语言,日志输出几乎无处不再。总结起来,日志大致有问题追踪,,状态监控,安全审计等用途。
log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
ALL 最低等级的,用于打开所有日志记录。
TRACE designates finer-grained informational events than the DEBUG.Since:1.2.12,很低的日志级别,一般不会使用。
DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。
INFO 消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。
WARN 表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示。
ERROR 指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多的日志,可以使用这个级别。
FATAL 指出每个严重的错误事件将会导致应用程序的退出。这个级别比较高了。重大错误,这种级别你可以直接停止程序了。
OFF 最高等级的,用于关闭所有日志记录。
如果将log level设置在某一个级别上,那么比此级别优先级高的log都能打印出来。例如,如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN 4个级别的log能正常输出,而INFO、DEBUG、TRACE、 ALL级别的log则会被忽略。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG
什么时候使用并输出日志
-
系统启动参数、环境变量
-
异常捕获处
-
函数获得期望之外的结果时
-
关键操作(增、删、改、查)
使用方法:
1、**导入jar包** log4j.jar Jar**包的下载:http://logging.apache.org/**
2、**配置日志文件,该文件通常不用开发人员自己编写**
3、**开始程序的日志记录**