首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教:怎么摒弃Try.Catch.

2011-12-24 
请教:如何摒弃Try...Catch...我是个C#开发熟手,做了不少小项目,基本上项目对于系统的性能要求不高。所以在

请教:如何摒弃Try...Catch...
我是个C#开发熟手,做了不少小项目,基本上项目对于系统的性能要求不高。所以在代码中,我曾经使用了大量的try...Catch...模式。
据我所知这是一种很占用系统资源的容错方式,当系统性能要求提高时,很可能成为系统致命bug。所以想在此请教各位,如何使用其它方式,使得系统压力降低,运行速度增快,等。


小弟在此谢过,走过路过都有分。


小弟的使用例子:
用于确定txt中的是数字,当然这里也可以使用正则表达式。
private   bool   DateConvert()
{
        string   tmpErrorMsg   =   " ";
        try
        {
                int.Parse(txt.Text.Trim());
                return   true;
        }
        catch   (Exception   exc)
        {
                ErrorStr   =   tmpErrorMsg   +   exc.Message.ToString();  
        }
        return   false;
}

用于确定ds.Tables[0].Rows[0][ "Tel "]不全是由数字组成的。
try
{
        int.Parse(ds.Tables[0].Rows[0][ "Tel "].ToString());
        objExcelRange.set_Item(i,   j,   " ' "   +   ds.Tables[0].Rows[0][ "Tel "].ToString());
}
catch
{
        objExcelRange.set_Item(i,   j,   ds.Tables[0].Rows[0][ "Tel "].ToString());
}


[解决办法]
//.net2.0新增
int.TryParse(...)

//在程序中不妨用用断言,来减少过多的判断
[解决办法]
你可以增加一些判断,来减少一些异常,但是异常是无法避免的,所以只能减少。
也可以统统抛给某一个try{}catch(){}去处理

反正是尽量减少异常的出现就好了
[解决办法]
同意楼上的

另如果是内部输入的数据的话可以考虑尽量不用Try,内部输入还是可以信任的
[解决办法]
try...Catch...模式。
据我所知这是一种很占用系统资源的容错方式,当系统性能要求提高时,很可能成为系统致命bug
=================

问一下 微软
如果象你 说得那样啊。为什么微软不摈弃呢 而且还在用呢

毕竟优点 多余缺点。。。。。。。。。。
[解决办法]
只能重新编码了

建议在一般的方法中不用try catch 用if之类的 不合适就throw异常
在最后调用的方法 一个大try catch 然后把异常记录在log中
[解决办法]
写自定义异常类,统一处理
[解决办法]
C#开发熟手?
建议就不要用C#了
呵呵C++也有try...Catch...模式啊
你还是好好看书学习吧
不是try...Catch她不好,是你不会用而已
[解决办法]
学习了
[解决办法]
try...Catch... 尽量用在数据操作,服务操作中,象页面判断之间判断 最好js 判断
[解决办法]
对于经常发生异常的地方,先判断一下,对于其他地方,就不用管了
[解决办法]
既然是熟手了,为何还无法理解 try-catch 的优劣? 还没有如何选用之的心得?

那么,我个人强烈建议 LZ 购买 Jeferry 的 《.Net 应用框架程序设计》 1.x 版本 译者 李建忠

已出最新版本基于 .net 2.0 《 框架设计(第2版):CLR VIA C# 》
http://www.china-pub.com/search/power_search/power_search.asp?key1=CLR+VIA+C%23&pz=1

似乎后者,翻译的口碑没有前者好。

BTW,由于新版此书翻译事宜,李建忠老师还与出版社发生“矛盾”,最后李老师没有接稿 ...
唉,现在的出版社啊 ...
[解决办法]
外部输入可以先断言,不合适,就抛出;


内部输入可以直接处理,对于未知异常,可以适用Try抛出
[解决办法]
发生错误的时候try catch会慢一点。平时不会影响速度的。干吗要摒弃?
[解决办法]
不得不的情况下再用嘛
[解决办法]
确实是这样,try catch会影响程序的性能,所以尽量用if来判断,减小进catch的几率,但是在某些情况下try catch能起到非常不一样的效果
[解决办法]
先路过,再瞧瞧
[解决办法]
呵呵,严重BS那些猫眼看人低的人,你们最好不要回复人家,回复人家就不要攻击人家,注意素质。

我觉得,除了涉及网络操作(如联系数据库服务器)、外部输入操作(如读卡器、手写输入板)等操作外,其它的操作可以不使用抛出异常,因为这些操作编程人员一般可以控制流程和输出值,判断输出值就可以了。
[解决办法]
不用是不行滴

除非频繁抛出异常(这一般意味着代码有缺陷),否则对性能影响不大
[解决办法]
俺还是一个生手 来此学习
[解决办法]
冲着楼主虚心求教的人品,小妹友情帮顶一把。

我个人比较同意 yaoxiaoj(都督) 的建议。
[解决办法]
是啊,要回复人家就要帮人家
try....catch
一般也只有在出现异常的情况下才会觉得它会影响程序的性能,但如果没有出现异常,它也不太会影响程序的性能的
[解决办法]
我还是刚刚学会用try ....catch ......阿

发现能俭省很多麻烦
[解决办法]
新手,只知道try...catch很好用
[解决办法]
能少用的地方就少用,像你示例的类型转换,你可以用正则表达式限定输入的内容啊。关键一点是尽可能的减少程序输入数据的不确定性。有些地方是没办法摒弃Try...catch的
[解决办法]
jf
[解决办法]
我的理解,try的时候对性能没有影响,只有catch的时候才会慢下来,毕竟在正常使用的情况下catch是很少的。但是如果不catch,可能产生更为严重的后果。
[解决办法]
try catch 只有catch住了才对性能有影响啊,而当你catch住的时候,系统都要挂了,这点影响又算什么呢?
[解决办法]
最好用底层函数了,多做Check了。
[解决办法]
考虑的周全些再写就不会
[解决办法]
呃...
拿那个转换数字的例子来说...
是构建正则对象的开销大...
还是try一下的开销大...
是不是也要考虑下呢...
[解决办法]
建立容错类
[解决办法]
不难,
用foreach遍历txt中的每一个字符,其中一个是,返回一个false就可以了,都是的话 true
[解决办法]
JF
[解决办法]
帮你顶下
[解决办法]
能用try-catch就不错了,我的异常根本不走catch;

http://community.csdn.net/Expert/topic/5698/5698576.xml?temp=.4823877

有达人可以帮忙看看吗?

热点排行