• <th id="ltxwt"></th>

      c# 異常處理機制

      2016-07-06

      異常語句

      try:包含正被異常保護的代碼,即表示對哪一段代碼進行異常檢測。

      catch:異常處理部分,可以有一個或多個。

      finally:所有情況下都要執行的代碼,無論異常是否發生。

      即使try中有return,finally語句也會先執行再返回。

      try { 	int a=0; } catch { 	... } finally { 	... }

      異常類

      .Net 的BCL定義了許多異常類,代表發生的異常的類型,并有針對性的處理語句。

      catch{} 一般catch語句:能接受所有異常,但不能確定異常類型;

      catch(ExceptionType) {}特定catch語句:可以匹配參數類或其子類的異常;

      catch(ExceptionType  instID) {}帶對象的特定catch語句:除了匹配參數類外,還給出了異常實例。


      搜索調用棧

      若異常發生在try語句之外,或try語句沒有匹配的異常處理程序,則系統會順序尋找調用棧。
      此種情況下:
              異常發生在try之外(try無匹配catch子句)——搜索調用棧,尋找匹配的封裝try語句,否則結束程序——準備執行搜索到的catch語句——回到棧頂端,執行封裝try的所有finally語句,彈出棧幀——執行匹配的catch語句——執行finally——在try之后繼續。

      可以用throw顯式地拋出異常,即自定義異常類型。



      天堂网