C#異常處理和資料型別轉換
阿新 • • 發佈:2019-02-05
在程式設計的過程中我們都知道有些錯誤是難以避免的,為了避免錯誤所帶來的程式不友好所以程式當中引入了異常處理機制,又因為資料型別奇多和處理方式不同,應要求又有了資料轉換的機制。下面來講一下在C#中的異常處理和資料轉換。
一、異常處理
在VB中我們都知道,異常處理對於程式來說是非常必要的,在設計中為了避免程式的突然中止和外界環境的錯誤,我們引入了錯誤的異常處理,在彙編上講就是一個跳轉JMP命令的作用。在VB中我們的異常處理是on error goto和resume next語句,在這裡我們就可以選擇是跳轉到處理的地方或者是執行下一條語句。
在C#中我們的異常處理有三大塊組成,分別是try{},catch{},finally{} 用法如下:
try
{
//可能會發生錯誤的程式碼
}
catch
{
//錯誤處理
}
finally
{
//資源清理
}
一般情況下,try只是對應要處理的程式碼,而catch可以通過判斷錯誤型別來進行處理,也就是說可以有多個catch存在,在不同的錯誤下處理不同的問題,具體視問題的錯誤型別來寫型別程式碼進行判斷,就是在catch後面宣告一個錯誤物件,如:catch(IndexOutOfRangeException e)其中e就是發生溢位操作的異常物件,他也有很多的屬性可以應用來顯示錯誤資訊,如:e.Message
就是錯誤資訊,可以通過輸出字元的方式向用戶展示。(具體的異常類要看對應的異常表去處理)。
最後的資源清理就是清理出現異常的程式所佔用的資源空間,包括記憶體空間和cpu程序,這是一定要做的,否則會出現程式結束後CPU、記憶體還是被佔用的情況。
二、資料型別轉換
資料型別轉換說來也是一個老話題了,從一開始寫程式的時候就強調資料型別的問題,尤其是VB的資料型別隱式轉化使得我們都沒有太注意這個問題,現最多的問題出現在編譯和輸入資料上面,稍有不慎就會出現變數XX不能隱式轉化為XXX型別的變數的問題,這個問題也會導致程式的崩潰。
資料轉換有強制轉換和一般型別轉換語句之分。強制轉換是不管資料的安全性直接進行轉換的策略,我們都知道資料型別之間所佔的空間有不一樣的,所以這種轉化有可能丟失資料,但是在有些時候是能夠解決一些問題的。下面是強制轉換的例子:
int a = 1; short b= 2; b=(short)a; //a 由int型別轉換為了short型別
一般型別的轉換通常是用To+資料型別來用的(有的型別不支援)
具體方法:
string str = "mytest";
char [] chars = str.ToCharArry(); //字串str轉換為字串陣列並賦值給字串陣列chars
int a = 123;
double b = 456;
double c;
c = b + a.ToDouble(); //int型別a轉換成double型別和b相加並賦值給c
另外還要注意字元型別的資料轉換成為數值型別的資料的時候是轉換成的ASCII碼的,而數值型別的資料轉換成字元型別卻是不一定的。