网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > .NET框架 > .NET的异常处理的几个误区  

.NET的异常处理的几个误区

2007-08-10  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  

 

  运行后可以看到代码的差异,通常在0.0001%的差别以内。

中国网管联盟bitsCN.com

  第二点,如果发生异常,那么引发或处理异常时,将使用大量的系统资源和执行时间。引发异常只是为了处理确实异常的情况,而不是为了处理可预知的事件或流控制。例如,如果方法参数无效,而应用程序需要使用有效的参数调用方法,则可以引发异常。无效的方法参数意味着出现了异常情况。相反,用户偶尔会输入无效数据,这是可以预见的,因此如果用户输入无效,则不要引发异常。在这种情况下,请提供重试机制以便用户输入有效输入。 中国网管论坛bbs.bitsCN.com

  我们经常需要将一个字符串转换为int,比如将Request.QueryString["id"]这样的字符串转换为int,在asp.net 1.x时代,我们常使用下列方式 中国网管联盟bitsCN.com

  try  
{
int id = Int32.Parse("123");
}
catch(){}

中国网管论坛bbs.bitsCN.com

网管u家u.bitsCN.com

  这样的后果是如果出现转换异常,你将不得不牺牲大量的系统资源来处理异常,即使你没有编写任何异常处理代码。 网管u家u.bitscn@com

  当然你也可以编写大量的代码来检测和转换字符串来替代try/catch方式,而从asp.net 2.0以后,框架将这个检测转换过程封装到Int32.TryParse方法中,再也不用蹩脚的try/catch来处理了。 网管网www_bitscn_com

  还要补充一点,就是finally中的代码是始终保证运行的,所以留给大家一个问题,下面代码执行后a的值是多少: 网管u家u.bitscn@com

  int a = 2;  
try
{
int i = Int32.Parse("s");
}
catch
{
a = 1;
return;
}
finally
{
a = 3;
}
网管bitscn_com
网管联盟bitsCN_com

  小节:本文主要对异常处理的3个常见误解进行了纠正。撰稿仓促,如有疏漏,烦请指出。 网管下载dl.bitscn.com

  中国网管联盟bitsCN.com


TAGs   误区   处理   异常   int   代码   我们   return   catch   一个   //      
 上一篇:针对构架师的.NET 3.0介绍   下一篇:在Vista中编程控制防火墙设定
.NET的异常处理的几个误区 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: