我是个菜鸟,我一直没有搞懂throws、throw、try catch这三者的区别,求牛人帮忙教教小弟

解决方案 »

  1.   

    这个我也是刚刚学的,不知道我理解的对否,交流下
    try catch是一起的还有个finally
    try把可能发生异常的代码包起来
    后面跟上catch来处理,
    如果有finally的话,表示不论是否发生异常都要执行其包含的代码,这样避免发生异常时,程序不正常介绍
    throw是当一个方法的具体代码可能有异常时,不选择try catch来处理,而是抛出去
    此时该方法开始的声明必然出现throws
    这样做简单,但是,如果其他方法调用这个方法的时候就要来出来这个异常了
      

  2.   

    try  catch是将可能发生异常的代码包起来,一旦出现异常就马上处理
    throw是一但发现异常,就把异常抛给上级处理,你可以在一个方法里一层一层的往上抛,
    最终一定要在main方法里处理掉
    一般情况下,建议楼主用try  catch,即出现异常就马上处理
      

  3.   

    public void test() throws Exception { // 可能抛出的Exception类型异常
    try {
    System.out.println("try");
    if (true) {
    throw new Exception("test"); // 抛出的Exception类型异常
    }
    } catch (Exception e) { // 捕获Exception类型异常
    throw new Exception(e.toString()); // 向上层(调用该方法的方法)抛出新的Exception类型异常
    } finally {
    System.out.println("finally"); // 有没有异常都执行
    }
    }throws是用来声明一个方法可能抛出的所有异常信息
    throw则是指抛出的一个具体的异常类型。
    通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
    throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
    throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。