程序由于未被捕获异常失败时,系统会自动打印该异常的堆栈轨迹
- 包含异常的字符串表示法(toString)
- 通常包含异常的类名,以及紧随其后的细节信息(detail message)
- 是检查程序失败的必须信息
- 异常的toString方法应该尽可能多的返回失败原因,尤其是在bug不可重现的情况下
- 异常的细节信息应当捕获住失败,以便分析
为了捕获失败,细节信息应当包含所有对该异常有贡献的参数和域的值
- 比如:IndexOutOfBoundsException 细节信息包含 上界、下界和没有落在其间的下标
- 三个值都有可能错误,每种情形代表不同的问题
信息的内容比可理解性要重要的多
- 该构造器包含了必要的足够信息
- 传给父类Throwable 的 detailMessage 域
- 值得推荐的做法,这样用户就不用多余的产生那么多的细节信息了
对于异常,提供访问接口