我希望这个问题有一个明确的答案。
是否最好使用其他属性(例如商品ID或类似内容)扩展自定义异常,以允许接收客户端分析异常?
另一种方法是将所有有价值的信息隐藏在消息字符串中。或者用复杂的返回值替换异常,其中包含实际结果和附加的上下文信息,否则这些信息将出现在异常的属性中。
感谢您的建议!
答案 0 :(得分:0)
这实际上取决于场景。通常,如果这是一个实际的异常(阻止正在执行的方法),我将使用第一个扩展异常类的选项。
无论情况如何,字符串选项听起来都很糟糕。
当我们讨论响应(例如 - HttpResponse)之类的事情时,复杂的返回对象对我来说听起来不错,在这种情况下你会遇到不同的问题层(由于没有通信而引发的异常?可能是凭据错误?或者是服务器端的实际逻辑异常?)。