我在Android示例代码中发现了一个不熟悉的“throws”用法,如下所示。
public Void handleResponse(HttpResponse response) throws IOException
{
...
}
我只是想知道这种“抛出”在这种情况下是如何起作用的。 我发布了这个,因为有点难以找到合适的搜索词go google。
答案 0 :(得分:3)
我认为您正在混合throws
和throw
。
throws
在方法的签名中指出在某些情况下它可以抛出IOException
。
throw new IOException()
会抛出实际的异常。
throws
关键字可以在每个Java程序中看到,并强制您将方法调用封装在try {} catch(){}
块中,如果例外是checked exception
答案 1 :(得分:1)
方法声明后的throws
关键字表示此方法可能抛出此异常。这意味着任何调用方法都必须确保它们捕获此异常,如下所示:
...
try {
var.handleResponse(response);
catch (IOException e) {
// oops, something went wrong
e.printStackTrace();
}
答案 2 :(得分:0)
在函数handleResponse()
的主体中的某处,有一个抛出IOException的可能性。当您调用该功能时,您需要将其包围在try..catch
块中。
答案 3 :(得分:0)
IOException
是一个已检查的异常,因此如果方法中的代码可以抛出throws IOException
(并且您没有在方法中捕获它),则需要IOException
。如果IOException
是RuntimeException(如NullPointerException
),则不需要这样做。也许你应该看看this问题。
答案 4 :(得分:0)
您应该从Java Tutorials开始。来自同一个教程:
所有方法都使用throw语句抛出异常。 throw语句需要一个参数:一个throwable对象。 Throwable对象是Throwable类的任何子类的实例。这是一个throw语句的例子。
throw someThrowableObject;