问题1:现在写一个类,类中是否所有的方法都得用"try...catch"括起来?这样到底好不好?理由是什么?
据鄙人所知优点:对于异常的捕获得心应手,随时可以跟踪,方便解决,实用性强.可扩展性差.
缺点:代码量大
某人说过"大量的复制粘贴的时候,就要考虑代码重用",我也是个懒人
==================================================================
问题2:我将写一个错误处理的类,这个类用来处理所有页面级错误的异常,类中所有方法中不再写任何的"try..catch",调用类中方法的始终是页面,所以这些异常的处理将在异常类中完成.?这样合不合理?鄙人所知的优点:代码量少,可扩展,灵活性不大好==================================================================
问题3你们在平常的项目开发中对错误处理是怎么来完成的??
怎么做才能更合理?更实用???
希望大家不吝告知小弟你们的想法和意见,先表示感谢
据鄙人所知优点:对于异常的捕获得心应手,随时可以跟踪,方便解决,实用性强.可扩展性差.
缺点:代码量大
某人说过"大量的复制粘贴的时候,就要考虑代码重用",我也是个懒人
==================================================================
问题2:我将写一个错误处理的类,这个类用来处理所有页面级错误的异常,类中所有方法中不再写任何的"try..catch",调用类中方法的始终是页面,所以这些异常的处理将在异常类中完成.?这样合不合理?鄙人所知的优点:代码量少,可扩展,灵活性不大好==================================================================
问题3你们在平常的项目开发中对错误处理是怎么来完成的??
怎么做才能更合理?更实用???
希望大家不吝告知小弟你们的想法和意见,先表示感谢
在类里,也不是所有地方都要try catch 只有有可能出错的地方要加上,如文件读写,网络传输等不确定因素
2
效率上来说很快,但不是很好,代码不好找错
3
第一种吧.
1:很不推存这种方法.第一感觉就是毫无目的.再是影响一点效率.
1:for(int i=0;i<1000000;i++){}
2:for(int i=0;i<1000000;i++){
try{}catch(Exception e){}
}
3:for(int i=0;i<1000000;i++){
try{
throw new Exception();
}catch(Exception e){}
}
1、2、3三者的执行时间比是5:6:5000
2:以前做的一个C/S项目就是独立写的一个异常类.复用性强啊.
我的看法是,如果一个方法你确定不会出错,那么就不用try catch了。如果有可能出错,比如取DB时,就一定要用try catch。
try catch 到底放在什么位置这不好说,好象也没有这方面的文章,都是一个人一个做法。我觉得在大的项目中在每个地方都try catch不好,还是写个类来总体管理比较好。小的项目可以随意
================
谢谢你的回复,我先说说我对你的第一条的看法
==========
1
在类里,也不是所有地方都要try catch 只有有可能出错的地方要加上,如文件读写,网络传输等不确定因素.
============
我的看法:
一个程序不太好确认哪儿可能出错?可以说错误无处不在,不用"try..catch"跳黄页,客户会很不满意.全部加上的话代码的重用启不是得不到利用?再说说我对第二条的看法:
2
效率上来说很快,但不是很好,代码不好找错
============
找错的话是一样的,跟直括起来的"try..catch"一个道理,只是感觉上不好找,根据net的错误处理,遇到异常,向上抛出,最终捕获的还是我的错误处理类.也可以知道是哪儿的错,事情总是矛盾的.
那个东西真是好东西哦。
提供日志。异常。。
还支持异常短信,邮件。等方式通知管理员。。非常好用
绝对值得使用。我用了。。感觉太方便了。
http://www.cnblogs.com/Terrylee/archive/2006/08/01/464591.aspx
http://www.cnblogs.com/pw/archive/2006/06/27/437226.html
有好的想法的 贴出来```3Q
1.1、确定一定以及肯定执行的代码在正常情况下可能会出现某个异常,并且而且一定你知道你在干什么,你才可以处理这个异常。如网络通信的时候,连接忽然断开的异常,捕获这个异常并且重新连接。
1.2、确定你的代码在正常情况下可能会出现某个异常,并且这个异常所描述的信息不够详细。可以捕获这个异常,并使用更加适合的自定义异常类抛出,并且一定要将源异常放在InnerException中。如图片加载时,图片格式错误会出现内存溢出的异常,你可以用图片格式错误的异常代替。
1.3、当你需要对程序中所有出现的异常进行记录时,捕获异常,记录,并使用没有参数的throw;语句将源异常抛出。2、异常本来就带有调用堆栈信息,不论在什么地方发现异常都能找到异常源。3、捕获异常而不做正确的处理是编程的大忌,这样的代码写出来就是隐患。所以当你不打算把异常抛出时,问自己三次,是不是能处理所有的情况?否则你就该抛出去让别人处理。4、轻易不要将异常另外包装,非要要包装时,一定要将源异常放在InnerException中。否则异常信息就丢了。不要胡乱包装异常。5、尽量不要对异常进行任何破坏性的工作,这是非常危险的,对于初学者,建议你尽量避免抛出异常,例如使用TryParse而不是Parse,而不是去处理异常。