在程式設計的過程中我們都知道有些錯誤是難以避免的,為了避免錯誤所帶來的程式不友好所以程式當中引入了異常處理機制,又因為資料型別奇多和處理方式不同,應要求又有了資料轉換的機制。下面來講一下在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不能隱式轉化為***型別的變數的問題,這個問題也會導致程式的崩潰。
資料轉換有強制轉換和一般型別轉換語句之分。強制轉換是不管資料的安全性直接進行轉換的策略,我們都知道資料型別之間所佔的空間有不一樣的,所以這種轉化有可能丟失資料,但是在有些時候是能夠解決一些問題的。下面是強制轉換的例子:
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碼的,而數值型別的資料轉換成字元型別卻是不一定的。
資料型別的處理是我們以前並沒有注意的問題,以後要多多注意了,因為在c#中的程式設計還有以後的程式設計資料型別的使用一定要掌握清楚,因為資料的處理有的時候真的就是這個程式的核心;錯誤處理也是一樣的,為了給使用者乙個良好的介面和使用體驗,精確的給予使用者錯誤的意見也是很重要的,所以用一句話來形容這次的內容就是:為了安全,為了使用者,一切都要從細枝末節抓起。
JS Boolean資料型別和資料型別轉換規律
boolean true false 乙個嘆號是取反,首先將值轉化為布林型別 然後再取反 console.log 3 false 資料型別轉換的規則 1 如果只有乙個值,判斷這個值是真還是假,遵循只有 0 nan null undefined 這5個是假的其餘的都是真的 將其他的資料型別轉換為boo...
js中的資料型別和資料型別轉換
原始型別 string number boolean null undefined symbol 物件 object 顯示型別轉換是通過呼叫下面這三個函式來進行的。1.number 數值 轉換之後還是數值 字串 如果可以被解析為數值,則轉為數值,否則轉為nan,空字串轉為0 布林值 true轉成1,...
typedef語句和資料型別轉換
1.typedef語句 objective c允許程式設計者微資料型別另外指派乙個名稱。使用typedef語句的好處主要是增加了程式的可讀性。用傳統方法不能夠清晰表示出變數的用途。例如 typedef number numberobject 則如下語句 numberobject myvalue1,m...