日期:2014-05-20  浏览次数:20691 次

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

------解决方案--------------------
这个我也是刚刚学的,不知道我理解的对否,交流下
try catch是一起的还有个finally
try把可能发生异常的代码包起来
后面跟上catch来处理,
如果有finally的话,表示不论是否发生异常都要执行其包含的代码,这样避免发生异常时,程序不正常介绍


throw是当一个方法的具体代码可能有异常时,不选择try catch来处理,而是抛出去
此时该方法开始的声明必然出现throws
这样做简单,但是,如果其他方法调用这个方法的时候就要来出来这个异常了
------解决方案--------------------
try catch是将可能发生异常的代码包起来,一旦出现异常就马上处理
throw是一但发现异常,就把异常抛给上级处理,你可以在一个方法里一层一层的往上抛,
最终一定要在main方法里处理掉
一般情况下,建议楼主用try catch,即出现异常就马上处理
------解决方案--------------------
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则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。