java-day10

异常处理

一、对于异常处理,有以下几种种方式:

1.用tryCatchFunally代码块处理,格式为:

try{
     编写可能会出现异常的代码
}catch(异常类型  e){
     处理异常的代码
     //记录日志/打印异常信息/继续抛出异常
}finally{

必须执行的代码块

}

finally代码块:有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的,但如果没有要必须只晓得程序,就不写finally代码。 通常,当我们在try语句块中打开了一些物理资源(磁盘文件/网络连接/数据库连接等),我们都得在使用完之后,最终关闭打开的资源。

2..用throw关键字,使用方法:

  1. 创建一个异常对象。封装一些提示信息(信息可以自己编写)。

  2. 需要将这个异常对象告知给调用者。怎么告知呢?怎么将这个异常对象传递到调用者处呢?通过关键字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、**开始程序的日志记录**

猜你喜欢

转载自blog.csdn.net/weixin_41804367/article/details/88789150