3
我有客戶端 - 服務器系統。它們通過RMI進行通信,因此涉及序列化/反序列化。服務器在請求時向客戶端發送響應。如果發生異常,則在響應中設置。從另一個異常中初始化帶有堆棧跟蹤的異常?
但是,如果服務器發生一些異常,客戶端不知道它。所以我需要包裝原始的異常,但爲了調試目的而保留堆棧跟蹤。有更優雅的解決方案嗎?
//response from server to client
class Response {
private MyException e;
public void set(MyException e) {
this.e = e;
}
}
//some other code
catch (MyException e) {
response.set(e);
} catch (Exception e) {
//could be exception which does not exist at client
//so I can not just set because it would cause ClassNotFoundException at client
response.set(new MyException(e.getMessage() + ": " + e.getStackTrace()));
}
似乎API只支持設置cause
,我可以沒有問題的,因爲上述。我可以在不設置原因的情況下從另一個異常中設置堆棧跟蹤嗎?
我會玩實現一個異常,這將填補從原因堆棧跟蹤,但刪除原因本身。 – agad