2010-07-09 27 views
3

可能重複:
Why are Exceptions not Checked in .NET?VB.NET爲什麼不強制處理異常?

如果我沒有記錯,Java強制捕捉和處理一個調用的方法可能拋出的任何異常。爲什麼.NET不能做同樣的事情?

+2

除了java以外,還有很多其他的語言有這種強制執行嗎?我想不出太多。我認爲java可能是這個怪人。這不是那麼糟糕... – 2010-07-09 19:25:08

+2

Duplicate:http://stackoverflow.com/questions/124143/why-are-exceptions-not-checked-in-net – 2010-07-09 19:25:24

回答

11

Java中的此功能稱爲檢查異常。安德斯,C#的創造者,做了一個採訪,他詳細解釋了爲什麼,因爲如果沒有C#,他們並沒有在C#中,因此包括VB.Net

我說因此VB.Net CLR也沒有包括檢查異常,VB.Net也沒有理由包含它們。 VB已經從一個不包括例外的模型進行了巨大的轉變。引入與CLR其餘部分完全不同的新異常模型將導致無效,導致用戶混淆並導致更多跨語言兼容性問題

3

我建議閱讀The Trouble with Checked Exceptions,其中C#架構師,Anders Hejlsberg會談與Bruce Eckel和Bill Venners討論檢查異常的可版性和可伸縮性問題。

2

有時你不想立即在發生它的方法中處理異常。

有時候沒有什麼可以做的。

例如,如果您要從數據庫檢索數據,並且檢索數據時出現問題,那麼數據訪問層可能不是處理該問題的最佳位置。允許例外可以鼓舞到業務邏輯層或表示層,在適當的信息可以顯示給用戶的情況下可能會更好。

在.Net中,一般的方法是隻處理異常,如果你能做些什麼的話。很多時候,你所能做的只是爲用戶提供有用的信息。