惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
博客园 - 【当耐特】
小众软件
小众软件
博客园 - Franky
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
雷峰网
雷峰网
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
Last Week in AI
Last Week in AI
博客园_首页
月光博客
月光博客
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
Webroot Blog
Webroot Blog
Stack Overflow Blog
Stack Overflow Blog
腾讯CDC
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Docker
The Last Watchdog
The Last Watchdog
有赞技术团队
有赞技术团队
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
DataBreaches.Net
S
Security @ Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
Y
Y Combinator Blog
O
OpenAI News
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Forbes - Security
Forbes - Security
P
Palo Alto Networks Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
Kaspersky official blog
Cloudbric
Cloudbric

博客园 - yi

Rabbitmq的使用及Web监控工具使用 Fiddler的配置 轻松实现SQL Server与Access、Excel数据表间的导入导出 Sql server性能优化白皮书 索引的优化脚本 查找当前的登录用户 usp_who5脚本,查找当前的进程 linq to sql的性能和reader相比只是差一点点吗 锁与索引 一个数据访问层的小工具 转:对XML插入操作 - yi - 博客园 查看当前的连接和锁 对数据的分页再一次思考 关注商业价值 应用程序优化 骂的人多了,也成了真理 样式小记 - yi - 博客园 重命名你的数据库 不浪费自己的时间,同时也不浪费别人的时间 - yi - 博客园
关于异常处理的一点看法
yi · 2010-04-24 · via 博客园 - yi

      很多人在很多情况下直接将代码try  catch就好了,但是这个给调试以及以后的可维护性带来非常麻烦了。我的观点则认为:如果程序运行在某个阶段,出现必须的异常,直接异常,交给最外层的逻辑或者交给表现层的异常处理来处理。这里当然包括进入的参数必须检查,而事实上我很少看见有人这么做。

  这里我们先谈论为什么不要把这个异常在知道可能发生的异常杀掉呢???原因:我们假设把这个异常处理掉,一种你就抛出新的异常处理,第二种空处理,第三种将异常处理信息带返回值。对于第一种,你的新的异常信息必须包括原有的信息,但是它有可能却给外界显示的信息太少了,包括真正原因。不过有时候这个方法仍然值得推荐,因为它使我们的异常信息可以更加明确,而这个明确是与调用接口或者是业务逻辑相关连。而对于第二种,杀掉异常,这对于维护人员,以及数据出错,会造成极大的损失,这种做法一定不要使用,因为它导致人家在出错的时候却不知道错在什么地方。而第三种,这样一返回将对代码的可读性与可维护性产生极大的问题。

   对于异常我认为,如果真的需要有一个异常抓取到,抓取到后直接throw,其代码如下:

try

{

}

catch(Exception ex)

{

     throw;//这里不可不要抛出ex,因为它查不到根源

}

   对于异常不得不说资源的释放,建议在可以预见使用using;因为它增长了代码的可读性,减少了必要的冗余,昨天我和一位群友讨论关于using在数据库链接使用using是否释放资源问题,现在我们来测试一个例子,以实际情况来说明问题,代码如下:

            SqlConnection con = null;
            try
            {
                using (SqlConnection con2 = new SqlConnection("server=.;uid=sa;pwd=234qwe;database=iFTS_Books;"))
                {
                    con = con2;
                    con2.Open();
                    throw new Exception("Exception");
                }
            }
            catch (Exception)
            {
            }
           

            Console.WriteLine(con.State.ToString());

如果输出是关闭,则说明是释放资源(这里有可能把它返回连接池,或者关闭,因为连接池windows自动管理),事实结果是close.不信你可以测试一下

  对于web应用程序,可以使用应用程序事件,用于显示友好的提示信息

关于异常暂时写到这里,改天将写一编关于性能优化的方法,这个是主要找出性能问题所在,不对细节说明,因为细节网上太多了,写了浪费你我的时间