验证服务的Java检查与未检查异常

验证服务的Java检查与未检查异常,java,exception-handling,checked,unchecked-exception,Java,Exception Handling,Checked,Unchecked Exception,我有一个允许用户向存储库添加动态内容的服务。因此,基本上我有一个通用文档类,它包含特定对象的属性列表,具体取决于用户添加的文档类型,例如,发票文档有发票编号属性,而wiki文档有作者属性,等等 该服务由不同的层组成,在某一点上,我有一个类必须检查要添加的文档是否符合规则配置器,评估是否提供了所有必需的属性,它们是否都是正确的类型,等等。 如果这些验证失败,我想抛出一个包含验证状态的自定义异常 问题是:我的ValidationException应该被检查还是取消检查?我读了很多关于如何决定使用哪种

我有一个允许用户向存储库添加动态内容的服务。因此,基本上我有一个通用文档类,它包含特定对象的属性列表,具体取决于用户添加的文档类型,例如,发票文档有发票编号属性,而wiki文档有作者属性,等等

该服务由不同的层组成,在某一点上,我有一个类必须检查要添加的文档是否符合规则配置器,评估是否提供了所有必需的属性,它们是否都是正确的类型,等等。 如果这些验证失败,我想抛出一个包含验证状态的自定义异常


问题是:我的ValidationException应该被检查还是取消检查?我读了很多关于如何决定使用哪种异常的最佳实践。我在考虑使用RuntimeException,但在本例中,异常不是由编码错误或类似的东西引起的,而是由用户输入引起的。。。另一方面,使用checked异常意味着在应用程序的所有上述层中传播throws语法,可能在90%的服务方法中传播throws语法,从而使代码的可读性和可维护性大大降低

正如我建议的那样,我在

这里是问题的链接,如果有人需要它


这对@HernánErasmo来说是一个很好的问题。是的,我刚刚做到了