我有一项服务允许用户将动态内容添加到存储库。所以基本上我有一个通用的Document类,它包含该特定对象的属性列表,具体取决于用户添加的文档类型(例如,发票文档具有发票编号属性,而wiki文档具有作者属性,等等)上)。
该服务由不同的层组成,在某些时候我有一个类,必须检查要添加的文档是否符合规则configurer,评估是否提供了所有必需的属性,如果它们都是正确的类型等 如果这些验证中的任何一个失败,我想抛出一个包含验证状态的自定义异常。
问题是:我的ValidationException应该被选中还是未选中?我阅读了很多关于如何决定使用何种异常的最佳实践。我正在考虑使用RuntimeException,但在这种情况下,异常不是由编码中的错误或类似的东西引起的,而是由用户输入引起的...另一方面,使用已检查的异常将意味着传播“throws”语法应用程序的上述所有层,可能在90%的服务方法中,使代码的可读性和可处理性更低。
答案 0 :(得分:0)