Android(或Java或许)不熟悉的“抛出”用法

时间:2013-01-18 13:23:13

标签: java android function exception throws

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

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

我只是想知道这种“抛出”在这种情况下是如何起作用的。 我发布了这个,因为有点难以找到合适的搜索词go google。

5 个答案:

答案 0 :(得分:3)

我认为您正在混合throwsthrow

throws在方法的签名中指出在某些情况下它可以抛出IOExceptionthrow 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;