问题1:现在写一个类,类中是否所有的方法都得用"try...catch"括起来?这样到底好不好?理由是什么?
据鄙人所知优点:对于异常的捕获得心应手,随时可以跟踪,方便解决,实用性强.可扩展性差.
缺点:代码量大
某人说过"大量的复制粘贴的时候,就要考虑代码重用",我也是个懒人
==================================================================
问题2:我将写一个错误处理的类,这个类用来处理所有页面级错误的异常,类中所有方法中不再写任何的"try..catch",调用类中方法的始终是页面,所以这些异常的处理将在异常类中完成.?这样合不合理?鄙人所知的优点:代码量少,可扩展,灵活性不大好==================================================================
问题3你们在平常的项目开发中对错误处理是怎么来完成的??
怎么做才能更合理?更实用???
希望大家不吝告知小弟你们的想法和意见,先表示感谢

解决方案 »

  1.   

    try...catch一般情况是能不用就最好不用,通过返回值来判断,不得以再用
      

  2.   

    1
    在类里,也不是所有地方都要try catch 只有有可能出错的地方要加上,如文件读写,网络传输等不确定因素
    2
    效率上来说很快,但不是很好,代码不好找错
    3
    第一种吧.
      

  3.   

    类中写try catch, 这样既可以自己出来异常,也可以threw给调用者。进可攻,退可守。
      

  4.   

    说说自已的理解;
    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项目就是独立写的一个异常类.复用性强啊.
      

  5.   

    我也很想知道到底怎么弄比较好。
    我的看法是,如果一个方法你确定不会出错,那么就不用try catch了。如果有可能出错,比如取DB时,就一定要用try catch。
    try catch 到底放在什么位置这不好说,好象也没有这方面的文章,都是一个人一个做法。我觉得在大的项目中在每个地方都try catch不好,还是写个类来总体管理比较好。小的项目可以随意
      

  6.   

    偶一般是写文件,操作数据库,网络连接用try catch多些。。
      

  7.   

    TO Red_angelX(八戒) ( ) 信誉:100    Blog   加为好友  2007-05-24 16:00:39  得分: 0  
    ================
    谢谢你的回复,我先说说我对你的第一条的看法
    ==========
    1
    在类里,也不是所有地方都要try catch 只有有可能出错的地方要加上,如文件读写,网络传输等不确定因素.
    ============
    我的看法:
    一个程序不太好确认哪儿可能出错?可以说错误无处不在,不用"try..catch"跳黄页,客户会很不满意.全部加上的话代码的重用启不是得不到利用?再说说我对第二条的看法:
    2
    效率上来说很快,但不是很好,代码不好找错
    ============
    找错的话是一样的,跟直括起来的"try..catch"一个道理,只是感觉上不好找,根据net的错误处理,遇到异常,向上抛出,最终捕获的还是我的错误处理类.也可以知道是哪儿的错,事情总是矛盾的.
      

  8.   

    还是说,只在最外层调用的地方try ..catch?
      

  9.   

    你还是用微软的企业库吧
    那个东西真是好东西哦。
    提供日志。异常。。
    还支持异常短信,邮件。等方式通知管理员。。非常好用
    绝对值得使用。我用了。。感觉太方便了。 
    http://www.cnblogs.com/Terrylee/archive/2006/08/01/464591.aspx
    http://www.cnblogs.com/pw/archive/2006/06/27/437226.html
      

  10.   

    有可能发生异常的地方才使用, 如果想统一处理可以用 Spring.net 的 Throws Advice , 不过它也只能捕获到异常,并不能对异常做任何的处理,但你可以通过它统一做一些日志记录之类的事
      

  11.   

    类中写try catch, 这样既可以自己出来异常,也可以threw给调用者。进可攻,退可守。
      

  12.   

    我只知道用这些try catch但没想过如何好的使用他```
    有好的想法的 贴出来```3Q
      

  13.   

    尽量不要使用try...catch能使用IF的都用IF!听别的高手说try...catch暂用资源比较大
      

  14.   

    ....一个程序不确定的地方很多吗?一般是在跟用户交互 读用户的输入,网络操作,流,DB等IO操作时才会发生了,这些都是独立的模块 他们都会有自己的try catch ,不知道我说的对不对。
      

  15.   

    也不知道  try.. catch..后面再加个finally 好不好
      

  16.   

    学习,我每次是try『     』  catch『 』  在这里能学到更好的方法
      

  17.   

    也不知道 try.. catch..后面再加个finally 好不好------------------------------------------------正式发布的时候一定记得这些 ry.. catch..finally  都去了,影响性能。
      

  18.   

    楼上的,为什么PETSHOP里面的数据库操用了
      

  19.   

    1、异常是一种程序自我保护的措施,除非有下列情况之一,否则不应捕获异常。
    1.1、确定一定以及肯定执行的代码在正常情况下可能会出现某个异常,并且而且一定你知道你在干什么,你才可以处理这个异常。如网络通信的时候,连接忽然断开的异常,捕获这个异常并且重新连接。
    1.2、确定你的代码在正常情况下可能会出现某个异常,并且这个异常所描述的信息不够详细。可以捕获这个异常,并使用更加适合的自定义异常类抛出,并且一定要将源异常放在InnerException中。如图片加载时,图片格式错误会出现内存溢出的异常,你可以用图片格式错误的异常代替。
    1.3、当你需要对程序中所有出现的异常进行记录时,捕获异常,记录,并使用没有参数的throw;语句将源异常抛出。2、异常本来就带有调用堆栈信息,不论在什么地方发现异常都能找到异常源。3、捕获异常而不做正确的处理是编程的大忌,这样的代码写出来就是隐患。所以当你不打算把异常抛出时,问自己三次,是不是能处理所有的情况?否则你就该抛出去让别人处理。4、轻易不要将异常另外包装,非要要包装时,一定要将源异常放在InnerException中。否则异常信息就丢了。不要胡乱包装异常。5、尽量不要对异常进行任何破坏性的工作,这是非常危险的,对于初学者,建议你尽量避免抛出异常,例如使用TryParse而不是Parse,而不是去处理异常。