2014-02-26 84 views
2

我有以下情況:爲什麼SAXException可序列化?

public class MyHandler extends DefaultHandler { 
    public class CustomException extends SAXException { 

    } 
} 

Eclipse是告訴我,SAXException的是序列化的,而且我要麼添加的serialVersionUID到CustomException或抑制警告。

問題:

  1. 爲什麼這樣的異常,實現串行?
  2. CustomException爲空。我應該添加一個serialVersionUID或抑制警告?


相關的問題(不那麼重要):爲什麼Eclipse的總是告訴我,一個serialVersionUID的缺失,甚至當我添加一個?

+0

1)如果任何類實現可序列化的接口,那麼原因是相同的2)抑制它 – Kick

+1

我從來沒有理解過的警告,但這裏有一個很好的問題:http://stackoverflow.com/questions/285793/what-is-a -serialversionuid-and-why-should-i-use-it –

回答

3

1所有異常都是可序列化的,因爲Throwable是所有異常的超類,都是可序列化的。它在RMI使用,如果一個遠程方法拋出一個異常,這種異常將被使用序列

返回到客戶端

2,您都可以做,如果你不打算序列化的自定義異常,這都沒有區別

+0

你可以提供一個案例,當我想序列化一個異常嗎?這樣說是否正確,因爲我不會序列化我的,壓制警告更加正確,因爲它不會欺騙我的代碼的未來讀者? – Numbers

+2

一個案例是RMI,我將它添加到我的答案中 –

相關問題