-
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码的,而数值类型的数据转换成字符类型却是不一定的。
总结:
数据类型的处理是我们以前并没有注意的问题,以后要多多注意了,因为在C#中的编程还有以后的编程数据类型的使用一定要掌握清楚,因为数据的处理有的时候真的就是这个程序的核心;错误处理也是一样的,为了给用户一个良好的界面和使用体验,精确的给予用户错误的意见也是很重要的,所以用一句话来形容这次的内容就是:为了安全,为了用户,一切都要从细枝末节抓起。
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比