1 Log4j
1.1 什么是Log4j?
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件等。
我们可以控制每一条日志的输出格式。
我们可以通过定义定义每一条日志信息的级别来更加细致地控制日志的生成过程。
以上操作仅需通过一个配置文件就可以灵活地进行配置,而不需要修改应用的代码
1.2 Log4j详解
最详细的Log4j使用教程
Log4j百度百科
1.3 简单使用
(还需继续深入。。。)
2 异常
2.1 什么是异常
异常就是不正常,是指程序在运行时出现的不正常情况,即程序中出现的问题。按照面对对象的思想,将异常封装成对象,方便于操作问题和处理问题。
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
每个异常都有共性的内容:每一个异常都有名称,有固定的描述信息,出现的位置。因此不断地向上抽取,形成了异常体系。
2.2 异常体系
2.3 异常处理格式
当try语句出现异常,程序会自动跳到catch语句块去找匹配的异常类型,并执行异常处理语句,finally语句块是异常的统一出口。
2.4 多异常处理
构造多个catch块,先捕捉小的异常再捕捉大的异常。
可以在 try 语句后面添加任意数量的 catch 块。
如果保护代码中发生异常,异常被抛给第一个 catch 块。
如果抛出异常的数据类型与 ExceptionType1 匹配,它在这里就会被捕获。
如果不匹配,它会被传递给第二个 catch 块。
如此,直到异常被捕获或者通过所有的 catch 块。
2.5 throws和throw
如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。
也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。
一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。
注意:
catch 不能独立于 try 存在。
在 try/catch 后面添加 finally 块并非强制性要求的。
try 代码后不能既没 catch 块也没 finally 块。
try, catch, finally 块之间不能添加任何代码。
更多实例请看Java异常处理