看起来您的技术主管经常因为他不擅长而逃离了开发人员的角色。
我的建议是:
- 与运行时异常相比,更喜欢运行时异常,特别是如果您不是API的唯一客户端时。使用已检查的异常会强制每个客户端处理该异常,即使它无法对此做任何事情。如果这确实是您想要执行的操作(即,强制调用者处理它),那么您想要的就是一个检查异常。
- 如果客户端在发生异常时唯一能做的就是显示或多或少的通用错误消息,例如“哎呀,发生了不好的事情,请重试或返回到欢迎页面”,那么绝对可以使用运行时异常。大多数表示框架都提供了使用通用错误处理程序的方法。
- 绝对使用链接到抽象层的异常。从高级服务中抛出SQLException是不够的。在适当时使用现有的异常类型(例如IllegalArgumentException表示非法参数)。否则,请将低级异常包装为较高级别的适当异常类型。代价高昂的是抛出异常。是否包装另一个都无关紧要。而且它无论如何都应该例外地发生。



