任何人都能用一个例子清楚地说明Java异常处理中throw和throws之间的区别吗?我试过谷歌搜索但无法得出结论.请帮忙
Nir*_*ati 39
throws子句用于声明异常,throw关键字用于显式抛出异常.
如果我们看到语法明智,那么throw后跟一个实例变量,throws后面跟着异常类名.
关键字throw在方法体内部用于调用异常,throws子句用于方法声明(签名).
例如
扔
throw new Exception("You have some exception")
throw new IOException("Connection failed!!")
Run Code Online (Sandbox Code Playgroud)
投
public int myMethod() throws IOException, ArithmeticException, NullPointerException {}
Run Code Online (Sandbox Code Playgroud)
您不能声明多个例外throw.您可以声明多个异常,例如public void method()抛出IOException,SQLException.
检查的异常不能throw仅因为它被明确用于抛出特定异常而传播.检查异常可以传播throws.
异常传播:异常传播从一个方法传播到另一个方法,直到它被捕获为止.因此,如果a()调用b(),它调用c(),调用d(),并且如果d()抛出异常,则异常将从d传播到c到b传播到a,除非这些方法中的一个捕获例外. 什么是异常传播?
throw用于抛出实际Exception并throws声明它可能抛出的方法Exception.
public int findMax(int[] array) throws Exception{
if(array==null)
throw new NullPointerException(...);
...
}
Run Code Online (Sandbox Code Playgroud)