“核心技术:异常、断言和日志”的版本间差异

来自Wikioe
跳到导航 跳到搜索
无编辑摘要
第3行: 第3行:
== 错误处理 ==
== 错误处理 ==
=== 异常分类 ===
=== 异常分类 ===
[[File:Java 中的异常层次结构.png|600px]]
异常对象都是派生于'''Throwable''' 类的一个实例:
# '''Error''':类层次结构描述了Java 运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对象。
# '''Exception''':
## '''RuntimeException''':由程序错误导致的异常属于RuntimeException;
## 其他异常:由于像I/O 错误这类问题导致的异常;
派生于RuntimeException 的异常包含下面几种情况:
* 错误的类型转换。
* 数组访问越界i
* 访问null 指针
不是派生于RuntimeException 的异常包括:
* 试图在文件尾部后面读取数据。
* 试图打开一个不存在的文件。
* 试图根据给定的字符串查找Class 对象, 而这个字符串表示的类并不存在。
非受查异常 与 受查异常:
# 非受查(unchecked) :异常派生于Error 类或RuntimeException 类的所有异常称为;
# 受查(checked) :所有其他的异常称为。
=== 声明受査异常 ===
=== 声明受査异常 ===
=== 如何抛出异常 ===
=== 如何抛出异常 ===

2020年10月20日 (二) 02:15的版本


错误处理

异常分类

Java 中的异常层次结构.png


异常对象都是派生于Throwable 类的一个实例:

  1. Error:类层次结构描述了Java 运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对象。
  2. Exception
    1. RuntimeException:由程序错误导致的异常属于RuntimeException;
    2. 其他异常:由于像I/O 错误这类问题导致的异常;


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

  • 错误的类型转换。
  • 数组访问越界i
  • 访问null 指针

不是派生于RuntimeException 的异常包括:

  • 试图在文件尾部后面读取数据。
  • 试图打开一个不存在的文件。
  • 试图根据给定的字符串查找Class 对象, 而这个字符串表示的类并不存在。


非受查异常 与 受查异常:

  1. 非受查(unchecked) :异常派生于Error 类或RuntimeException 类的所有异常称为;
  2. 受查(checked) :所有其他的异常称为。

声明受査异常

如何抛出异常

创建异常类

捕获异常

捕获异常

捕获多个异常

再次抛出异常与异常链

finally 子句

带资源的 try 语句

分析堆栈轨迹元素

使用异常机制的技巧

使用断言

断言的概念

启用和禁用断言

使用断言完成参数检查

为文档假设使用断言

记录日志

基本日志

高级日志

修改日志管理器配置

本地化

处理器

过滤器

格式化器

日志记录说明

调试技巧