unity學習之異常,修飾符

歡迎來到unity學習教育專區,這裏有豐富的unity資源,相信一定可以給你帶來收穫

常量

     使用 const 關鍵字來聲明某個常量字段或常量局部變量。 常量字段和常量局部變量不是變量並且不能修改。 

     常量可以爲數字、布爾值、字符串或 null 引用。 不要創建常量來表示你需要隨時更改的信息。

 

       const float PI=3.14f;

       PI=3.2f;//錯誤


       常量一般都大寫,也可以用靜態來修飾,調用時可以直接用類名.常量的形式來用。

 

只讀字段

       當字段聲明中包括readonly修飾符時,該字段成爲只讀字段。只能在聲明只讀字段的同時賦初值。其他任何時候都不允許爲只讀字段賦值。

       如果在類定義中顯式添加一個構造函數,可以在構造函數中改變只讀字段的值。


      常量:定義時,必須給常量賦值,不能再次賦值;

      只讀字段:定義時,必須給只讀字段賦值,可以在構造函數內再次賦值(只能在構造函數內)。

 

修飾符

         C#共有五種訪問修飾符:publicprivateprotectedinternalprotected internal

                

                 訪問範圍由大到小:public--protected internal--internal--protected--private

異常

      1、C# 語言的異常處理功能可幫助您處理程序運行時出現的任何意外或異常情況。 

      2、異常處理使用 trycatch 和 finally 關鍵字嘗試某些操作,以處理失敗情況,儘管這些操作有可能失敗,但如果您確定需要這樣做,且希望在事後清理資源,就可以嘗試這樣做。 

      3、異常是使用 throw 關鍵字創建的。

 

   異常(try...catch)

        對於給定的 try 子句,可以有一個以上的 catch 子句,每個 catch 捕捉不同的異常類型。導出類型必須始終列在任何基類型之前。

 

   異常(throw)

                 throw語句用於發出在程序執行期間出現異常情況的信號。

                 格式:throw  表達式;

                 (1)其中表達式必須表示一個Exception類或他的派生類型,也可以在throw語句後沒有表達式,表示將異常再次拋出

            (2)如果使用throw拋出異常,沒有相應的catch捕獲異常,出現異常時會中斷程序運行。

            (3)使用throw語出拋出異常時,儘量不出拋出基類異常。因爲基類異常對象包含的錯誤很多,無法判斷是發生了什麼類型的異常。

            

   異常(finally)

        finally 構造用於指定即使發生異常也始終會運行的代碼。finally 通常用於清理髮生異常時所產生的內容。如果沒有finally,這一級的資源就不好釋放了

 

  異常(Exception)

        當不確定有什麼異常時,可以直接用Exception

 

異常具有以下特點:

       1、各種類型的異常最終都是由System.Exception 派生而來。

       2、在可能引發異常的語句周圍使用 try 塊。

       3、一旦 try 塊中發生異常,控制流將跳轉到第一個關聯的異常處理程序在 C# 中,catch 關鍵字用於定義異常處理程序。

       4、程序可以使用 throw 關鍵字顯式地引發異常。

       5、即使發生異常也會執行 finally 塊中的代碼。 使用 finally 塊釋放資源,例如,關閉在 try 塊中打開的任何流或文件。

 

c#描述異常處理語句try、catch、finally執行時的相互關係

         (1)try裏面是執行代碼,其中的代碼"可能"產生異常. 

         (2)catch是對產生異常後的處理代碼,可以拋出異常,也可以顯示異常,也可以彈出某中提示,總之catch裏是任何代碼都行,如果你知道這鐘異常產生的原因,可以打印此原因,也可以對此原因進行相應的處理,同時可以爲多個catch,每個                  catch(異常類型) 用多個catch來捕獲多種異常,也可以用所有異常的父類來捕獲(這樣就不用寫多個catchl了). 假如try中產生了異常,那麼try從產生異常開始到try結束的這段代碼將不會執行,轉而去執行catch. 

         (3)finally是try執行完後執行(沒發生異常)或者在catch後執行(發生了異常),也就是說finally無論怎麼樣,都會執行. 

 3個連起來就好像口語中的(try)假如。。。(catch)就。。。(finally)最後。。。這樣比較好記。

在catch塊中throw new exception(string,exception)有什麼意義?解決方案

www.MyException.Cn  網友分享於:2013-02-03  瀏覽:31次
在catch塊中throw new exception(string,exception)有什麼意義?
如題

------解決方案--------------------
throw new exception(string,exception) 

throw是明確地拋出異常 

MSDN: 
Exception (String, Exception) 使用指定錯誤信息和對作爲此異常原因的內部異常的引用來初始化 Exception 類的新實例。 
------解決方案--------------------
如果要現實: 

在發現異常以後作一下記錄異常信息然後在拋出異常,讓客戶知道有問題了,以便通知技術人員。 

你見到的那種方式就有必要了,因爲程序異常以後就崩潰的機會很大,先記錄問題下來再崩潰纔行。 
------解決方案--------------------
捕獲異常以後,再拋出一個新的異常。 
再拋出新異常之前,你可以對前面捕獲的異常做一些操作,比如記錄日誌、獲取異常信息然後寫到新異常中 
------解決方案--------------------
我認爲catch塊裏通常對附異常有三種辦法 
一種辦法是,什麼也不做,catch語句裏只有空語句 
另一種辦法是,用messagebox之類的通知異常 
還有一種辦法是,throw 一個new的異常。 
用哪種辦法取決於你希望如何處理這個異常。 
如果你想直接通知用戶,用messagebox之類的就好了 
如果你想由調用這個函數的程序來處理,可以throw一個new 
如果你希望你的程序出了“這個”異常還正常運行,就像什麼也沒發生一樣,你可以空語句。 
總之try catch是有意義和必要的,但你的程序如何catch就是你自己的想法嘍。 
------解決方案--------------------
int num = Convert.ToInt32(textBox1.Text); 

try 

if (num == 0) 

throw new ArgumentNullException( "出現零! "); // 引發第一種錯誤,至於錯誤類型,C#有許多你查一下。 

if (num == 1) 

throw new Exception( "出現壹! "); // 引發第二種錯誤。 


catch (ArgumentNullException ex) // 處理第一種錯誤,你看ArgumentNullException是不是和上面批配?

MessageBox.Show(ex.Message); 

catch (Exception ex) // 處理第二種錯誤。 

MessageBox.Show(ex.Message); 
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章