吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 2770|回复: 13

[C#] C#中级开发原创教程第二课-异常处理

[复制链接]
王尼玛 发表于 2014-11-16 19:15 | 显示全部楼层 |阅读模式

本帖最后由 王尼玛 于 2014-11-16 19:15 编辑

大家好,我是王尼玛。今天起我给大家讲解C#中级开发教程,本次是第二课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.

有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧


在浏览网上信息时,有时因为网络不通,或者网站无法访问,我们无法获得指定网页的内容.同样,应用程序访问数据库时也不会总是一帆风顺的,可能因为数据库服务器没有开启或网络不通导致应用程序无法与数据库建立连接,此时应用程序就会出现意外错误
程序员编写应用程序难免会发生错误,有的错误是编译时产生的,这就是编译错误,有的错误是在程序运行的过程中出现的,这种错误就是异常,为了保证程序正常运行,程序员要对程序运行中可能发生的错误进行编码处理,这就是异常处理



一.如何处理异常


.Net提供了try-catch语句块来捕获和处理异常
语法:
  1. try
  2. {
  3.     //包含可能出现异常的代码
  4. }
  5. catch(处理的异常类型)
  6. {
  7.    //处理异常的代码
  8. }
复制代码
try-catch语句是把可能出现异常的代码放在try块中,如果在程序运行过程中发生了异常,就会跳转到catch块中进行错误处理,这个过程叫做捕获了异常.如果程序执行没有发生异常,那么将会正常执行try块中的全部语句,但不会执行catch块中的语句

异常也有很多种类型,本课我们只关注Exception类这是.Net提供的一个异常类,表示应用程序在运行时出现的错误
比如,可以把操作数据库的代码放在try块里面

  1. try
  2. {
  3.     conn.Open();
  4.     //.....省略其他操作
  5.     conn.Close();
  6. }
  7. catch(Exception ex)
  8. {
  9.     //错误处理代码
  10. }
复制代码
学过数据库的朋友应该知道,数据库连接必须显示关闭.但是,如果在数据库连接关闭之前就出现了异常,程序就会跳到catch块里,那么try块当中的数据库连接关闭方法就不会执行,这时应该怎么办呢?这个问题.Net早就想到了,他提供了一个finally块,无论是否发生异常,出现在finally块中的语句都会执行.这样就可以把关闭数据库连接的语句写在finally块中
  1. try
  2. {
  3. conn.Open();
  4. //.....省略其他操作
  5. }
  6. catch(Exception ex)
  7. {
  8. //错误处理代码
  9. }
  10. finally
  11. {
  12.   conn.Close();
  13. }
复制代码

这样就确保了无论程序是否发生异常,在程序结束之前都会关闭数据库连接
注意:
程序在执行了try块或catch块之后总会将控制权传递给finally块,与try块的退出方式无关

这节课就到这,是不是很简单




评分

参与人数 12威望 +1 HB +33 THX +8 收起 理由
29590 + 1
消逝的过去 + 1
VipDongle + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
agan8888 + 1
ding520 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
若只如初见 + 2 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
雾里看花 + 3 + 1 积极评分从我做起,感谢!
微笑的耗子 + 8 + 1 支持原创,感谢楼主!
label + 1 + 1 编程这东西 真的就是靠多练习 多放错 进步才快~~ 看的在多 还不如敲一遍来的
heiheidz + 1 + 5 + 1 支持原创,感谢楼主!
Shark恒 + 10 + 1 短小精湛!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-11-16 19:25 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
label 发表于 2014-11-16 20:26 | 显示全部楼层

怎么感觉 C#的异常 和JAVA的异常一个样~~
     编程这东西 真的就是靠多练习  多放错 进步才快~~ 看的在多 还不如敲一遍来的实在

点评

王尼玛”点评说:
C#和Java很多语法都相似的,  详情 回复 发表于 2014-11-17 15:28
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
柠檬狗丶 发表于 2014-11-16 22:38 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-11-17 15:28 | 显示全部楼层

label 发表于 2014-11-16 20:26
怎么感觉 C#的异常 和JAVA的异常一个样~~
     编程这东西 真的就是靠多练习  多放错 进步才快~~ 看的在多 ...

C#和Java很多语法都相似的,
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Scar-疤痕 发表于 2014-11-17 23:58 来自手机端 | 显示全部楼层

感谢楼主分享!!

点评

起凡第一华佗”点评说:
灌水处理-10HB初次给予警告。  发表于 2014-11-18 16:38

评分

参与人数 1HB -10 收起 理由
起凡第一华佗 -10 珍惜ID,远离灌水!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Flyfire 发表于 2014-11-18 21:57 | 显示全部楼层

C#,感觉应该是大势所趋,.net好像开源了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2014-11-19 13:50 | 显示全部楼层

我现在想问下c#和net的区别、、

点评

王尼玛”点评说:
C#是基于.net框架的语言,  详情 回复 发表于 2014-11-19 16:23
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 王尼玛 发表于 2014-11-19 16:23 | 显示全部楼层

520Kelly 发表于 2014-11-19 13:50
我现在想问下c#和net的区别、、

C#是基于.net框架的语言,
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
雾里看花 发表于 2014-11-20 17:31 | 显示全部楼层

c好久没碰都忘记 现在重新学 有什么推介的书籍  和c语言软件吗- -
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表