java异常处理

1、自定义异常

(1)先定义一个方法,其中包含可能会抛出异常的行为(可能成功,也可能失败),并且if(失败) 则 throw eException

(2)在使用该方法时必须是在try-catch里面的try执行

(3)程序在执行到throw语句时立即终止,从该方法中跳出往下执行,所以throw后面的语句不可达

static int filterCartItem(int id) throws MyException {
        // TODO Auto-generated method stubif (id<0) {
            // throw之后的语句都无效
            throw new MyException("不存在该商品!");}
return id;
}

主函数中使用它:

(1)如果catch中没有内容,则不会显示异常信息

(2)catch里面的e是filterCartItem里面抛出的

(3)catch里面的参数应该和filterCartItem里的异常类一致

(4)如果try的某一条语句执行出现异常,则该语句一下的语句都不会在执行,而直接条转到catch

try {
      filterCartItem(id);
            } catch (MyException e) {
                // TODO: handle exception
               System.out.println(e.getMessage());
   }

如果在try中出现错误但希望再给它一次机会,可以:

for (int i = 0; i < 3; i++) {
            try {
               //
            } catch (Exception e) {
                // TODO Auto-generated catch block
                System.out.println("错误的数量: " + e.getMessage());
                if (i != 2) {
                    System.out.println("请重新输入:");
                } else {
                    System.out.println("错误次数达到最大,终止!");
                }
            }
        }

 2、已经try-catch还是提醒要throw解决方法:

因为catch的异常类不是基类exception导致异常不全!

Done!

posted @ 2013-10-15 18:13  行云有影  阅读(157)  评论(0编辑  收藏  举报