网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
关于.NET的异常处理的几个误区
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
bsp;     Test2(2, 4);

        l2 = DateTime.Now.Ticks;
        s1 = l2 - l1;
        Console.WriteLine("time spent:" + s1);

        l3 = DateTime.Now.Ticks;

        for (int i = 0; i < times; i++)
            Test1(2, 4);

        l4 = DateTime.Now.Ticks;
        s2 = l4 - l3;
        Console.WriteLine("time spent:" + s2);
        Console.WriteLine("difference:" + (s2 - s1) + ", rate:" + (float)(s2 - s1) / s1 / times);
    }
}

static int Test1(int a, int b)
{
    try
    {
        for (int i = 0; i < 100; i++) ;  // 模拟长时操纵
        if (a > b)
            return a;
        return b;
    }
    catch
    {
        return -1;
    }
}

static int Test2(int a, int b)
{
    for (int i = 0; i < 100; i++) ;  // 模拟长时操纵
    if (a > b)
        return a;
    return b;
}

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

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

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

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

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

当然你也可以编写大量的代码来检测和转换字符串来替代try/catch方式,而从a

  • 上一篇资讯: .NET的技术特征
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号