2014-06-27 48 views

回答

2

不是來自例外本身,但可以從上下文中。如果代碼只處理一個套接字,那麼異常必須與該套接字相關。

這聽起來好像你沒有在適當的級別上處理你的異常,而是在你的程序的高層部分處理(捕獲)低級別的異常,並且希望能夠在這一點上進行低級別的處理。

考慮在中間級捕獲異常,部分處理它,然後重新拋出它。您可能想在此時進行異常翻譯(鏈接)。

+0

有關異常鏈接的信息,請參閱http://stackoverflow.com/questions/5020876/chained-exception-in-java – Raedwald

1

你不能從excpetion中得到它,因爲它沒有保存套接字的屬性。

-1

簡單的答案是'不'。由於Java中的異常是爲了通知意外的行爲而做出的,因此他們不會錯誤地存儲對該對象的任何引用。你可以看到這個異常類或它的任何超類型。他們都不能參照任何物體。

+0

是的,我已經搜索了自定義用戶對象。但是Java不支持這一點,與.Net有字典並且它在那裏存儲一些相關的對象。 –

+0

那麼如何檢測哪個套接字觸發SocketException?我只有一個選項可以從套接字對象的狀態中檢測到它嗎?只有一種方法嗎? –

+0

你可以在這裏添加一些你的代碼,所以我們可以先分析它?另外,一些堆棧跟蹤會有所幫助。 – Aakash