1. 程式人生 > >C# try catch finally簡單介紹和應用

C# try catch finally簡單介紹和應用

val hat CA one ... 出錯 結構 介紹 有關

今天看代碼書的時候,有用到try--catch--finally,然後就查了下具體的註意事項和應用。

簡單來說就是:

  try {

    //有可能出錯誤的代碼或者代碼片段

  }

  catch{

    //若try內代碼有誤,此處會獲取錯誤

  }

  finally{

    //可以沒有,也可以只有一個。

    //為了保證程序的穩定性,強制執行的一段程序片;

    //無論代碼是否有錯誤/發生異常,都會在處理異常結構的最後走這一步

    //有一種例外情況:若沒有catch語句塊,那麽finally塊就是必須的。

  }
try後必須跟catch,不跟是不能通過編譯,finally是強制程序片,比如強制關閉數據庫連接和銷毀數據庫對象
1、將預見可能引發異常的代碼包含在try語句塊中。
2、如果發生了異常,則轉入catch的執行。catch有幾種寫法:
catch
這將捕獲任何發生的異常。
catch(Exception e)
這將捕獲任何發生的異常。另外,還提供e參數,你可以在處理異常時使用e參數來獲得有關異常的信息。
catch(Exception的派生類 e)
這將捕獲派生類定義的異常,例如,我想捕獲一個無效操作的異常,可以如下寫:
catch(InvalidOperationException e)
{
....
}
這樣,如果try語句塊中拋出的異常是InvalidOperationException,將轉入該處執行,其他異常不處理。

.net按照你catch的順序查找異常處理塊,如果找到,則進行處理,如果找不到,則向上一層次拋出。如果沒有上一層次,則向用戶拋出,此時,如果你在調試,程序將中斷運行,如果是部署的程序,將會中止。

如果沒有catch塊,異常總是向上層(如果有)拋出,或者中斷程序運行。

3、finally
即使在try塊內用return返回了,在返回前,finally總是要執行。

如果你不希望在這裏處理異常,而當異常發生時提交到上層處理,但在這個地方無論發生異常,都要必須要執行一些操作,就可以使用try finally,

return是可以放在try語句塊中的。但不管在什麽時機返回,在返回前,finally將會執行。

finally 內最好不要有return,以防程序提起退出,返回值不是try 或catch中保存的值。

總結:try--catch--finally,that‘s all.

C# try catch finally簡單介紹和應用