java - 我们可以在 Java 中为自定义异常使用组合吗
问题描述
我们正在努力不使用 extends(IS-A Inheritance) 项目。但是自定义异常呢,人们通常从现有的异常类扩展而来。这里有什么正确的解决方案?
class CustomException{
private Exception exception;
....
}
解决方案
异常类必须扩展 Throwable 类(Exception extends Throwable)。您想要实现的目标在 Java 中是不可能的。
你仍然可以做的是:
class CustomException extends Exception {
private Throwable cause;
//...
}
这实际上是在标准 Java 中完成的,以存储作为该异常根源的异常。通常你会这样做:
try {
// ...
} catch(AnotherException e) {
//...
throw new CustomException(e);
}
为什么会这样设计?
好吧,Java中所有异常都必须具有一组标准功能,您可以在Throwable中看到:
- 提供一个原因
- 提供错误信息
- 代码中引发异常的位置的堆栈跟踪。
它可以通过接口完成,这是真的,但是 JRE 使用一个类。
推荐阅读
- arrays - VBA - 如何创建水平二维数组
- java - 在java中获得字符串排列的有效/快速方法
- r - 为什么 unlist() 将字符串列表转换为数字?
- laravel - Laravel Telegram bot 错误请求:字符串必须以 UTF-8 编码
- python - 如何解决 PyFMI 中的字符编码错误?
- php - 在 prestashop 1.6 中无法使用 address->id_country 加载国家/地区
- python - pdfQuery 结果数据的面向对象数据结构是什么?
- error-handling - 如何将错误从终端重定向到剪贴板?
- python - Python Sklearn 线性回归产生不正确的系数值
- html - 如何为我的网站编辑不和谐嵌入?