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

java中的throw和throws的区别
昨天面试,遇到了这样的一个问题,请教一下,两者的区别

------解决方案--------------------
出现异常的时候,有的是在所在的语句块里处理,有的是抛给上级方法或类进行统一处理,所以要有throw。至于throw和throws,一个是在语句块(主要是catch)中应用,一个是在方法名或类名处声明,具体作用没什么不同
------解决方案--------------------
在声明异常时,在方法名后用throws后面再跟上异常的名单,这样把运行时出现的已声明过的异常向上传递给调用该方法的方法处理;throw语句用来声明自己定义的异常,这种自定义的异常必须是Throwable类的子类;try\catch语句是告诉runtime去捕获该段代码中可能会出现的异常,并进行处理,如果不写对异常的处理代码,runtime会把异常对象交给默认的异常处理程序处理。

public void p1 throws IOException {
throw new IOException( "io error ");
}
这个example很经典,throw就是自己抛出一个异常,而 throws是声名一个异常,表明该异常不在产生异常的函数中处理,由调用该函数的方法处理