2010-06-25 24 views
4

你能否在C#中解釋異常的概念?異常的目的是什麼?

+0

異常的概念不是C#獨有的。所有的.NET語言都支持異常,Java和本地C++也是如此。 – 2010-06-25 04:49:03

+0

http://en.wikipedia.org/wiki/Exception_handling – 2010-06-25 04:59:52

回答

0

查看Exceptions上的MSDN Docs。

簡而言之,只要應用程序出現錯誤就會發生異常。有許多不同類型的錯誤,例如數組索引超出界限,磁盤I/O中的錯誤,Divide By Zero問題等等。但是一般來說,只要發生了某些程序無法自動糾正的情況,就會發生異常。

+0

在編輯過程中包含某種總結 – 2010-06-25 04:45:56

+1

是有幫助的。 – drharris 2010-06-25 04:47:16

1

例外是當方法或函數不能完成它應該做的事情的情況。

如果的OpenFile方法無法打開文件[對於任何理由],文件句柄返回到調用者,這是對的OpenFile方法,因爲它無法打開這是它的主要目的文件例外。因此,沒有什麼比例外的,對於其他人來說,在某些不同的情況下,對您而言可能是一種例外情況。我們可以稱它爲Execution Failures。例外的主要目的是傳達錯誤條件。

例:OutOfMemoryException可能是正常的小規模的數據錄入程序的例外條件,但不是爲那些做他們的內存管理自己,喜歡的SqlServer或IIS應用程序。考慮閱讀流的情況。如果ReadByte方法到達數據流的末尾,並且沒有更多字節要讀取,那麼當您在流上調用ReadByte時,它應該拋出一個異常,因爲沒有更多字節要讀取。但是當你在流尾部調用ReadChar方法時,它將讀取EOF,這對於ReadChar方法來說是絕對可以的,因爲EOF是一個有效的字符來讀取。對於ReadByte方法,條件被稱爲method-failure

+0

方法應執行以下兩項操作之一:返回表示請求操作結果的值,或者在無法完成請求的操作時拋出異常。 – kyoryu 2010-06-25 05:00:25

+0

基於錯誤代碼的錯誤報告並不可取。該方法必須達到其目的並僅返回可接受的值。任何阻止該方法執行的條件都是例外情況,應該使用'HResult'來將錯誤與外部錯誤數據庫或文檔相關聯。這是因爲你只想通知有關錯誤條件,而不是如何解決錯誤條件。 – 2010-06-25 05:15:52

+0

請證明投票的正確性。 – 2010-06-25 05:33:38