现在有一个循环,并且需要有try来捕获异常,如果try写在循环外面,如果循环一报异常,就会停止执行,与需求不符。但是如果把try写在循环里面,对系统性能的消耗会很大,很纠结,有没有折中一点的办法来解决这个问题?

解决方案 »

  1.   

    把能想到的情况都在循环中判断了,然后写一个try在循环外面...
      

  2.   

    既然是可以预见的异常,就完成可以通过判断避免掉。
    再有,你觉得try catch语句性能消耗真有那个大?
      

  3.   

    try 写在for 外面  使用递归
      

  4.   

    比如 int i = Integer.parseInt("a");
    这个肯定会出异常,但是写代码的时候不会提示必须捕获。可以写成
    int i = 0;
    try{
     i = Integer.parseInt(arg0);
    }catch(Exception e){
     i = 0;
    }这样写也可以增强系统的健壮性,不会说一有问题就直接后面的所有业务都不执行。
      

  5.   

    肯定写在循环内LZ说“对系统性能的消耗会很大”,难道你认为10次for循环会出8次异常?那这就是你的问题了也就是说。。你写在for循环内,不是每次都会执行的意思!!!综上:多虑了
      

  6.   


    推荐的方法是: String str = "22";
    if (str.matches("^\\d+$")) {
    System.out.println(Integer.parseInt(str));
    }else{
    System.out.println("format error");
    }