如何避免在自定义java异常类中重复
发布时间:2020-12-15 03:00:16 所属栏目:Java 来源:网络整理
导读:我喜欢创建Exception类,其名称表示注意和抛出特定于应用程序的问题. 为了定义它们,通常会定义一个新类,其超类是一些异常类型. 由于父Exception类中有多个常见的构造函数,通常子类看起来像这样: package com.example.exception;/** * MyException is thrown
我喜欢创建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); } } 从DRY的角度来看,我发现这种方法很乏味,特别是在定义了Exception层次结构时. 我熟悉像Lombok这样有助于减少常见Java模式重复的工具;是否有任何建议可以解决异常类重复此特定问题的工具? 解决方法
如果您创建“业务”异常,则不应只复制Exception中的所有构造函数.而是创建使用业务对象的异常.例如,如果请求失败并且由业务对象Request建模,则可能会使用单个构造函数创建RequestFailedException:
public RequestFailedException(Request request) { super("Request to " + request.getUrl() + " failed."; } 您甚至可以在字段中存储对Request对象的引用,并提供一个getter,以便处理异常的方法可以获得有关正在发生的事情的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |