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