异常、断言和日志

2017-08-06  本文已影响30人  宿命99

处理错误

需要关注的问题

  1. 异常分类
image.png

派生于RuntimeException的异常包含下面几种情况:

  1. 声明受检查异常
    使用throws关键字,在方法的首部同所有的异常类。每个异常类之间用逗号隔开。

  2. 如何抛出异常
    使用throws new Exception();

  3. 创建异常类
    派生于Exception类或派生于Exception的子类

捕获异常

  1. 捕擎天异常
try{
} catch (Exception e){
}
  1. 捕获多个异常
    Java 7以后,在catch子句中可以捕获多个异常. 使用 |

  2. 再次抛出异常与异常链
    在catch子句中,可以改变异常的类型,进行再次抛出

  3. finally子句
    不管异常是否被捕获,finally子句中的代码都被执行。

InputStream in = new FileInputStream("c:\\a.txt");
try{
  try{
  } finally {
  }
} catch(IOException e) {
    //异常处理的语句
}
  1. 带资源的try语句
    前提:资源属于实现了AutoCloseable接口的类
try(Resourse res = ...) {
}
  1. 分析堆栈轨迹元素
    getStackTrace方法,可以得到stackTraceelElement对象的一个数组,可以在你的程序中分析这个对象数组。

使用异常机制的技巧

  1. 异常处理不能代替简单的测试
  2. 不要过分的细化异常
  3. 利用异常层次结构
  4. 不要压制异常
  5. 在检测时,“苛刻”比放任要好
  6. 不要羞于传递异常

使用断言(JDK自带的,基本不使用)

  1. 断言的概念
    断言机制允许在测试期间向代码中插入一些检查语句,使用关键字assert.

  2. 启用和禁用断言
    在默认情况下,断言被禁用。使用java -ea:选项启用

  3. 使用断言完成参数检查

  4. 为文档假设使用断言

记录日志

  1. 基本日志
    使用全局日志记录器(global logger)
    Logger.getGlobal().info(、、、);

  2. 高级日志
    日志级别:七种

  1. 修改日志管理器配置

  2. 本地化

  3. 处理器

  4. 过滤器

  5. 格式化器

  6. 记录说明

上一篇下一篇

猜你喜欢

热点阅读