任何人都可以通过一个示例清楚地说明 Java 异常处理中 throw 和 throws 之间的区别吗?我试过谷歌搜索,但无法得出结论。请帮忙
问问题
71062 次
3 回答
47
throws
子句用于声明异常,throw
关键字用于显式抛出异常。如果我们从语法上看,那么
throw
后面是一个实例变量,throws
后面是异常类名。关键字
throw
用于方法体内调用异常,throws
子句用于方法声明(签名)。
例如
扔
throw new Exception("You have some exception")
throw new IOException("Connection failed!!")
投掷
public int myMethod() throws IOException, ArithmeticException, NullPointerException {}
您不能使用 声明多个异常
throw
。您可以声明多个异常,例如 public void method() throws IOException,SQLException。已检查的异常不能仅传播,
throw
因为它显式用于引发特定异常。已检查的异常可以使用throws
.
异常传播:异常从一个方法传播到另一个方法,沿着调用堆栈向上传播,直到它被捕获。因此,如果 a() 调用 b(),b() 又调用 c(),c() 又调用 d(),并且如果 d() 抛出异常,则异常将从 d 传播到 c 到 b 到 a,除非这些方法之一捕获例外。 什么是异常传播?
于 2014-09-02T07:08:01.393 回答
7
throw
用于抛出实际Exception
并throws
声明它可能抛出的方法Exception
。
public int findMax(int[] array) throws Exception{
if(array==null)
throw new NullPointerException(...);
...
}
于 2014-09-02T07:08:42.807 回答
0
public void someMethod(List<Foo> someList) throws SomeException {
if (someList.isEmpty()) throw new SomeException();
}
于 2014-09-02T07:09:19.260 回答