2010-07-01 70 views
0

我們有第三方Java代碼拋出無頭異常。我們可以在我們的代碼中看到它嗎?問題在於我們如何知道哪些第三方代碼(以jar文件形式出現)會拋出異常。我們沒有第三方API文檔。抓住別人的例外

+0

你的意思是說,它是從字面上拋出一個[HeadlessException](http://java.sun.com/j2se/1.5.0/docs/api/java/awt/HeadlessException.html)?我問,因爲這是一個[RuntimeException](http://java.sun.com/j2se/1.5.0/docs/api/java/lang/RuntimeException.html),不需要聲明。 – 2010-07-01 18:41:54

回答

1

通過在try/catch區塊中包裝這些第三方調用,您絕對可以在代碼中捕獲到它。

據瞭解,沒有文檔的異常類型,這是更加困難。通過在開發過程中打印出異常類型進行試錯。或開發非常緊密的try/catch塊開放Exception

0

嗯,

在理想的情況下,您應該停止使用該第三方API。既然你已經在使用它,如果你編寫包裝並使用它,會更好。

  • 構造的中間層
  • 定義自定義異常清晰
  • 試析第三方API主要方法,看看你感到異常可能會出現
  • 薄弱環節及時把他們儘可能
0

我不清楚你是什麼意思的無頭的例外。

面臨的挑戰是,如果您不知道哪些方法可能存在異常,則每次調用該第三方API時都必須捕獲這些異常。您可能希望在該API上擁有一些抽象層,並僅將其委託給每個呼叫並將其打包,並用try{call()} catch(Exception e){...}

0

您是否在談論java.awt.HeadlessException?根據文檔:

代碼時,被依賴於鍵盤,顯示器,鼠標或調用中不支持鍵盤,顯示器,或鼠標的環境拋出。

當然,你可以嘗試去捕捉它,但它會如何幫助你?該第三方庫可能無法工作,例如沒有鍵盤,顯示器或鼠標的服務器。