Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建几个自定义异常有什么问题_Java_Exception - Fatal编程技术网

Java 创建几个自定义异常有什么问题

Java 创建几个自定义异常有什么问题,java,exception,Java,Exception,在搜索StackOverflow上包含异常的内容时,我发现一个响应大致如下: “创建太多自定义异常是一种代码味道。请尽量使用JDK提供的异常。” 为什么??我创建3个自定义异常来描述我试图处理的电子邮件应该发生的情况,这有什么不对?相关:在我看来,自定义异常太多表明您的自定义异常太具体,并且没有足够的可重用性。另一方面,如果它们过于泛化,那么您最终会遇到与捕获(异常e)相同的情况,您不知道捕获了什么或如何处理它。我没有文字或参考资料来描述正确的平衡,所以我将把这作为一个评论。三个太多了吗?我建议

在搜索StackOverflow上包含异常的内容时,我发现一个响应大致如下:

“创建太多自定义异常是一种代码味道。请尽量使用JDK提供的异常。”


为什么??我创建3个自定义异常来描述我试图处理的电子邮件应该发生的情况,这有什么不对?

相关:在我看来,自定义异常太多表明您的自定义异常太具体,并且没有足够的可重用性。另一方面,如果它们过于泛化,那么您最终会遇到与捕获(异常e)相同的情况,您不知道捕获了什么或如何处理它。我没有文字或参考资料来描述正确的平衡,所以我将把这作为一个评论。三个太多了吗?我建议,如果希望对每个异常使用不同的catch块执行不同的操作,则只创建多个异常。如果您想要的只是一条不同的消息,我建议使用消息字符串来说明发生了什么。顺便说一句,即使自定义类也可以扩展标准类。我不知道“太多自定义异常”反模式,但这是尽可能重用现有异常的常见地方。可能,如果您在单个方法上抛出了太多异常,那么可能是因为您将太多的责任塞进了代码中。我们还需要提醒的是,例外情况应该适用于“例外情况”:如果您的方法完全有可能产生负面结果(例如,无效的电子邮件地址),您可能会返回一个对象,其中包含要检查的消息的结果。该语句是虚幻的,因为“太多”表示“一个大到坏的数字”。唯一有趣的问题是“多少就是太多”。但这主要是基于观点的。