1. 程式人生 > >C#--try catch(異常處理)

C#--try catch(異常處理)

異常處理:try catch;throw:專門扔異常。

程式碼放到try中,程式碼執行時會執行try中語句。如果沒有異常,這些語句將執行下去,直到執行結束;如果一旦出現異常則跳出try,去執行catch中的內容(可以多個catch 同時存在)。


        try
            {
              //有可能出現錯誤的程式碼
             }

        catch
             {
              //如果try中程式碼出現異常,則進去catch中
             }

        finally
             {
              //
最後執行的程式碼 } //try中獲取並使用資源,在catch中處理異常情況,並在finally中釋放資源。

例如:

             try
                {
                    Console.WriteLine("輸入數字");
                    int num = Convert.ToInt32(Console.ReadLine());
                }
             catch (Exception ex)
                {
                    Console.WriteLine
(ex.Message); } Console.ReadKey(); 如果輸入不是數字的則會出現異常,但是這樣寫會顯示輸入格式不正確,不會報異常。

栗子:

            int []nums={3,4,5};

            try
                {
                    nums[3] = 90;
                }

            catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
             //throw;  //這個是顯示出異樣的
} finally { Console.WriteLine("不論是否出現異常都會走這裡"); } Console.ReadKey(); 顯示:索引超出陣列界限,不論是否出現異常都會走這裡,但是沒有報錯。

總結:

  1. 傳統的作物表示方式:錯誤碼。舉例: 需要知道不同錯誤碼的含義,如果不能吃力錯誤碼,則程式可能陷入不可以預知的錯誤。
  2. 錯誤碼的缺點:不處理則很難發現,每次處理則很麻煩;難以看出錯誤的原因;容易使得程式進入不確定狀態。
  3. try catch。Exception ex異常也是物件。
  4. Exception 類主要屬性:Message、StackTrace
  5. 發生異常後程序預設就退出了,try程式碼塊中的後續程式碼不會被執行。catch以後的程式碼則會繼續執行。
  6. 扔出自己的異常,扔:throw,抓住:catch。