Kau*_*kar 7 java inheritance exception dry
我喜欢创建Exception类,这些类的名称表示注意到并抛出特定于应用程序的问题.
为了定义它们,通常定义一个new class,其超类是某种Exception类型.
由于父Exception类中有多个常见的构造函数,通常子类看起来像这样:
package com.example.exception;
/**
* MyException is thrown when some application-level expectation is not met.
*/
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
public MyException(Throwable cause) {
super(cause);
}
public MyException(String message, Throwable cause) {
super(message, cause);
}
}
Run Code Online (Sandbox Code Playgroud)
从DRY的角度来看,我认为这种方法很乏味,特别是在Exception定义层次结构时.
我熟悉像Lombok这样的工具,可以帮助减少常见Java模式的重复; 是否有任何建议可以解决异常类重复此特定问题的工具?
如果您创建“业务”异常,则不应仅从Exception. 相反,创建使用您的业务对象的异常。例如,如果由您的业务对象建模的请求失败,Request您可以RequestFailedException使用单个构造函数创建一个:
public RequestFailedException(Request request) {
super("Request to " + request.getUrl() + " failed.";
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以将对象的引用存储Request在字段中并提供 getter,以便处理异常的方法可以获得有关所发生情况的更多信息。
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |