-4

我在 Android 示例代码中发现了一个不熟悉的“抛出”用法,如下所示。

public Void handleResponse(HttpResponse response) throws IOException
{
  ...
}

我只想知道在这种情况下这个“抛出”是如何工作的。我发布了这个,因为很难找到合适的搜索词去谷歌。

4

5 回答 5

3

我认为您正在混合throwsthrow.

throws在方法的签名中表明它可以IOException在某些情况下抛出一个。 throw new IOException()将抛出实​​际的异常。

throws关键字可以在每个 Java 程序中看到,try {} catch(){}如果异常是已检查异常,则强制您将方法调用封装在块中

于 2013-01-18T13:27:39.123 回答
1

方法声明后的throws关键字表示该方法可能会抛出该异常。这意味着任何调用方法都必须确保它们捕获此异常,如下所示:

...
try {
  var.handleResponse(response);
catch (IOException e) {
  // oops, something went wrong
  e.printStackTrace();
}
于 2013-01-18T13:27:07.540 回答
0

在函数体的某处,handleResponse()可能抛出 IOException。当您调用该函数时,您需要将其包围在try..catch块中。

于 2013-01-18T13:25:25.360 回答
0

IOException是一个检查异常,因此throws IOException如果您的方法内的代码可以抛出一个IOException(并且您没有在方法内捕获它),则需要它。IOException如果是 RuntimeException(如NullPointerException),则不需要这样做。也许你应该看看这个问题。

于 2013-01-18T13:25:33.487 回答
0

您应该从Java 教程开始。从同一个教程:

所有方法都使用 throw 语句来引发异常。throw 语句需要一个参数:一个可抛出的对象。Throwable 对象是 Throwable 类的任何子类的实例。这是一个 throw 语句的示例。

    throw someThrowableObject;
于 2013-01-18T13:26:51.450 回答