我希望這個問題有一個明確的答案。具有附加屬性的自定義異常?
是否最好使用其他屬性(例如項目ID或類似內容)來擴展自定義異常以允許接收客戶端分析異常?
另一種方法是將所有有價值的信息隱藏在消息字符串中。或者用一個複雜的返回值替換該異常與實際的結果和附加的上下文信息,否則這些信息在異常的屬性中。
感謝您的諮詢!
我希望這個問題有一個明確的答案。具有附加屬性的自定義異常?
是否最好使用其他屬性(例如項目ID或類似內容)來擴展自定義異常以允許接收客戶端分析異常?
另一種方法是將所有有價值的信息隱藏在消息字符串中。或者用一個複雜的返回值替換該異常與實際的結果和附加的上下文信息,否則這些信息在異常的屬性中。
感謝您的諮詢!
這確實取決於場景。通常如果這是一個實際的異常(停止正在執行的方法),我會使用擴展異常類的第一個選項。
字符串選項聽起來很糟糕,不管場景是什麼。
複雜的返回對象對我來說聽起來很不錯,當我們談論諸如響應之類的事情時(例如 - HttpResponse),您可能會發生不同層次的問題(是由於沒有通信而拋出異常?可能是憑據錯誤?或者服務器端的實際邏輯異常?)。
感謝您的回答!任何其他想法? –
也許都是。擴展屬性適用於解析異常。當由外部工具(例如測試)捕獲的信息不能從定製屬性中獲取信息時,儘可能多的信息的字符串表示對人類閱讀仍然有用。 – Glutexo