try  catch是包含一大块,还是只包含可能抛exception的那段代码?
这两种方式性能上有什么区别吗?

解决方案 »

  1.   

    如果你的一大段會有其他的Exception,
    而你的catch也沒有很精確的指定是哪個Exception(catch(Exception e),
    那麼有可能抓到不是你意料中的Exception。catch一行或一段,看你的程式邏輯而定,例如你的一段可能有好幾種Exception,
    你可以分段去處理,這樣每一段都還可以繼續往下執行,但如果是設成一大段,
    只要一個錯誤,下面的程序就被忽略了。
      

  2.   

    try catch 不会自己去找哪儿出现了错误,而是在错误抛出来后,程序检测有没有try catch
    如果有则交给try catch处理!而一定不会抛异常的代码就不会有这个判断, 所以在性能上没有区别,
    try catch 的位置由人为决定,如果这段代码一定不会抛异常,那就不用括起来,否着就括起来!
      

  3.   

    要是异常多的时候最好catch中写好具体异常
      

  4.   

    我觉得区别肯定有,也许很小,但还是有区别比如在某try块中的某行代码发生异常,它可能会首先判断该异常发生点有无包含在try块中,若有,向下寻找catch或finally,进行异常处理,在这个过程中,找个不定恰当的说法,如果catch或finally离异常发生点很远,那也是要多折腾点东西的如果try块包含了更多的异常,那算另外一种情形了
      

  5.   

    一个try catch块只包含可能抛出相同Exception的最小范围的连续的语句块;
    各种不同情况的Exception要分别用不同的try catch块进行包括,以便对异常进行精确定位和后续处理。
      

  6.   

    写try catch时,一般都是在程序员知道这段代码中会出现可能的异常而添加的,比于读文件的代码段,就一定得写,因为代码不能保证这个文件程序员是否放在了指定的位置,类似等等。而在catch中最好用多个catch列出这段代码中可能出现的异常,对不同异常分别处理,自定义好这个错在项目所需要展示的信息,这样,维护起来会很容易。
    至于try catch是包含所有还是只包含可能产生异常的代码。个人建议只包含你认为可能抛或者系统方法本来就必须截获异常的代码。因为如果很大段代码的包含,在不可调试的情况下,你很难确定是哪里抛出的这个异常,也得不到自定义的异常信息。。
    请楼主根据实践去决定吧
      

  7.   

    个人觉得必须抛的异常,IO,SQL语句,这是必须写的.还是你觉得有NULL的地方也要抛一下.如果你用的是SSH就不用写了.
      

  8.   


    try {
                    String input="";
                 input=stdIn.readLine();

                catch (IOException e) {
    // TODO: handle exception
    }
                catch (Exception e) {
    // TODO: handle exception
    }
    try catch可以包含可能抛出异常的代码和普通的非异常代码。如上所示:
    而且,一个try后面可以有多个catch块,但要求这几个catch块里面的Exception必须是继承关系,即下面的catch的Exception必须是上面的父类,位置不能颠倒。执行的时候如果检测到的异常已经被上面的catch捕获,则下面的catch就不再执行了,如果所有的catch都不能捕获程序就不能往下执行了。