C#Try/Catch/Finally

 大盗哈喽小马甲_943 发布于 2023-02-12 20:18

我被教导大部分时间总是从我的代码中删除try/catch/finally块.这背后的原因总是对我有意义(如果你的应用程序以它应该的方式工作,你不需要防止错误),但同时有很多东西可能导致错误,而不是由于差编码; 服务器打嗝,图形似乎永远不会失败,因为没有明显的原因失败,等等.我也被告知这些块可以降低性能,当我使用它时没有我个人注意到,但我想这可能是案件.基本上我得到的是; 尝试/捕获/最后一个糟糕的整体想法或在某些情况下好的另一个好,如果过度使用不良代码以保持应用程序漂浮,有利于测试/生产不好?只想要一些输入.

1 个回答
  • 有些情况下你无法避免Try/Catch,

    考虑一种情况,您希望用户输入要在数据库表中输入的一些数据.用户的输入也包括主键,现在,如果某个用户输入了重复的主键,您将获得异常.你现在要做什么 ?让系统崩溃或处理异常并向用户显示用户友好的消息,以输入不同/唯一的内容.

    考虑一个示例,假设您要检查某个URL是否有效且可用,您可能需要一些方法,如:( 从此处获取)

    private bool IfURLExists(string url)
    {
        try
        {
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "HEAD";
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            return (response.StatusCode == HttpStatusCode.OK);
        }
        catch //may catch specific WebException First
        {
            return false;
        }
    }
    

    如果没有上述方法就行不通try/catch.

    另一个重要用法try/finally是with using语句,using与那些实现IDisposable接口并转换为try/finally块的对象一起工作,因此如果发生异常,它将确保处理非托管资源.

    通常只捕获那些异常,如果你想对它们做一些有用的事情,否则让异常冒泡

    2023-02-12 20:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有