码迷,mamicode.com
首页 > 编程语言 > 详细

java异常处理

时间:2018-07-21 17:12:45      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:应该   etc   重定向   pat   tac   分类   project   方式   文件   

错误处理

Java的异常

异常

Java使用异常Exception来表示错误
Exception是Class,带有类型信息
可以在任何地方抛出
只需要在上层捕获,和方法调用分离
必须捕获的异常称为Checked Exception
不需要捕获的异常包括RuntimeException和Error
捕获异常使用try...catch
不捕获的Checked Exception必须用throws声明 main()是最后捕获异常的机会

捕获异常

捕获异常使用try...catch
catch会捕获对应的Exception及其子类
多个catch子句从上到下匹配
顺序非常重要,子类必须在前
finally保证有无错误都会执行
finally可选
使用multi-catch捕获多种类型异常

抛出异常

异常从下往上抛出,直至被捕获
打印方法调用栈:printStackTrace()
用throw语句抛出异常
转换异常时注意保留原始异常信息
抛出异常前会保证执行finally
finally如果抛出异常会导致suppressed exception
获取所有异常信息:getSuppressed()

自定义异常

尽量使用JDK已定义异常
自定义异常从RuntimeException派生
先定义BaseException,再派生子类
自定义异常应该提供多个构造方法
可以使用IDE根据父类快速创建构造方法

断言和日志

使用断言

断言 Assertion
断言使用assert语句
JVM默认关闭断言指令:
给Java虚拟机传递-ea参数启用断言 可以指定特定的类启用断言 -ea:com.feiyangedu.sample.Main 可以指定特定的包启用断言 -ea:com.feiyangedu...
特点:
断言是一种调试方式,断言失败会抛出AssertionError,导致程序退出
只能在开发和测试阶段启用断言
对可恢复的错误不能使用断言,而应该抛出异常
断言很少被使用,更好的方法是编写单元测试

使用JDK Logging

日志 Logging

日志是为了替代System.out.println(),可以定义格式,重定向到文件等 日志可以存档,便于追踪问题 日志记录可以按级别分类,便于打开或关闭某些级别 可以根据配置文件调整日志,无需修改代码

JDK提供了Logging:java.util.logging JDK Logging定义了7个日志级别:
SEVERE WARNING
INFO (默认级别) CONFIG
FINE
FINER
FINEST

JDK Logging的局限:
JVM启动时读取配置文件并完成初始化
JVM启动后无法修改配置
需要在JVM启动时传递参数 -Djava.util.logging.config.file=config-file-name

使用Commons Logging

Commons Logging
Commons Logging是Apache创建的日志系统:
Commons Logging是使用最广泛的日志模块
Commons Logging的API非常简单
Commons Logging可以自动使用其他日志模块
Commons Logging定义了6个日志级别:
FATAL
ERROR
WARNING
INFO (默认级别)
DEBUG
TRACE

技术分享图片?

在Eclipse中引入jar包:
Project -> Property -> Java Build Path -> Libraries -> Add Jars... 初始化Log对象:

final Log log = LogFactory.getLog(getClass());

文档:http://commons.apache.org/proper/commons-logging/

使用Log4j

Log4j
Log4j的概念:
Appender
Filter
Layout

使用Log4j:
通过Commons Logging实现日志,不需要修改代码即可使用Log4j
使用Log4j只需要把log4j2.xml和相关jar放入classpath
如果要更换Log4j,只需要移除log4j2.xml和相关jar
只有扩展Log4j时,才需要引用Log4j的接口

文档:http://logging.apache.org/log4j/

java异常处理

标签:应该   etc   重定向   pat   tac   分类   project   方式   文件   

原文地址:https://www.cnblogs.com/10zhang/p/java-yi-chang-chu-li.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!