异常总结:
What--àhave--àhow………….
1. 什么是异常?异常是程序运行过程中不正常的情况
2. 常见到异常类型有哪些?
ThrowAble(所有异常的根基类)
Exception(异常基类)
NullPointerException(空指针)
ClassNotFoundException(类不能被加载)
InputMismatchException(输入的数据类型与设置的类型不匹配)
IllegalArgumentException(方法接收到非法参数)
ArrayIndexOutOfBoundsException(数组越界)
3. 怎么样进行异常处理?java中通过5个关键字来实现异常处理
分别是:try:可能发生异常的代码,应放入try块中
Catch:捕获异常,并进行处理
Finally:无论是否发生异常,里面的代码都会被执行,一般在里面进行资源的清除工作
Throw:只能出现在方法体类,用于显示抛出一个异常
Throws:只能出现在方法签明中,用于标识该方法可能抛出的各种异常类型
4. 页面错误处理与异常处理的区别?
页面错误处理是总体上对系统中某种异常类型的处理,如Exception,而java的异常处理是针对某段功能代码所做的处理
5.系统中一般在哪些地方需要进行异常处理呢?
在MVC中的持久层是必需要有的,出现的异常类型有******SQLException,ClassNotFoundException,NullPointException,ArrayIndexOutOfException,下次再加入了解,在C中会通常需要处理异常,因为异常不能再往上一级抛,上一级是直接使用的用户!!!
6.Java中的异常处理机制的简单原理和应用?
当java程序违反了java的语义规则时,javaJVM就会将发生的错误表示为一个异常,违反语义则包括2种情况。一种是java类库内置的语义检查。例如数组下标越界,会引发ArrayIndexOutOfException,访问null的对象时会引发NullPointerException。另一种情况就是java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Throwable的子类。
疑问点:
如果try中发生的异常类型在catch中未声明,则退出当前方法并由JVM中的jdb进行处理,输出椎栈信息
多重catch,必需从特殊到一般的声明异常的类型,如果有Exception,则必须在最后,程序会从第一个开始找相匹配的类型,如果找到后面的catch将不会执行
三种方式:Try-catch……, try-finally, try-catch……-finally
异常的类型有两类:运行时异常,受检异常
*****为什么要throw或throws异常?
如果声明方法时里面需要传要参数,这时就不能对参数进行处理,而throw一个异常,让调用者去处理该异常
Throws原理同上
记录日志信息:用于记录操作出现的错误信息,以便日后查看并改正,使用apache的开源工具log4j
可以在控制台输出日志,也可以输出日志到文件中
具体步骤:(只写入文件)
1. 加入log4j放入lib目录
2. 在src目录下放入log4j。properties文件,文件内容:
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=F:/test/a.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n
log4j.rootLogger=error,file
3.在系统中使用Logger.error(“error message”);
实现此三步即可实现对错误日志记录到文件F:/test/a.log,以便日后查看
4. Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG
tanlinqing