-
C#异常处理和数据类型转换
在编程的过程中我们都知道有些错误是难以避免的,为了避免错误所带来的程序不友好所以程序当中引入了异常处理机制,又因为数据类型奇多和处理方式不同,应要求又有了数据转换的机制。下面来讲一下在C#中的异常处理和数据转换。
一、异常处理
在VB中我们都知道,异常处理对于程序来说是非常必要的,在设计中为了避免程序的突然中止和外界环境的错误,我们引入了错误的异常处理,在汇编上讲就是一个跳转JMP命令的作用。在VB中我们的异常处理是on error goto和resume next语句,在这里我们就可以选择是跳转到处理的地方或者是执行下一条语句。
在C#中我们的异常处理有三大块组成,分别是try{},catch{},finally{} 用法如下:
1
|
try { //可能会发生错误的代码 } catch { //错误处理 } finally { //资源清理 } |
最后的资源清理就是清理出现异常的程序所占用的资源空间,包括内存空间和cpu进程,这是一定要做的,否则会出现程序结束后CPU、内存还是被占用的情况。
二、数据类型转换
数据类型转换说来也是一个老话题了,从一开始写程序的时候就强调数据类型的问题,尤其是VB的数据类型隐式转化使得我们都没有太注意这个问题,现最多的问题出现在编译和输入数据上面,稍有不慎就会出现变量XX不能隐式转化为XXX类型的变量的问题,这个问题也会导致程序的崩溃。
数据转换有强制转换和一般类型转换语句之分。强制转换是不管数据的安全性直接进行转换的策略,我们都知道数据类型之间所占的空间有不一样的,所以这种转化有可能丢失数据,但是在有些时候是能够解决一些问题的。下面是强制转换的例子:
1
|
int a = 1; short b= 2; b=( short )a; //a 由int类型转换为了short类型 |
一般类型的转换通常是用To+数据类型来用的(有的类型不支持)
具体方法:
1
|
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码的,而数值类型的数据转换成字符类型却是不一定的。