1

throws任何人都可以简要介绍 Java中throw的异常处理之间的区别

4

4 回答 4

3

当您的方法有一些代码在运行时导致错误并且您需要在方法调用时处理或抛出该异常时,使用 throws。

虽然 throw 是为了你可以显式地抛出一个错误。

这是两者的示例

对于投掷

public void test() throws ClientProtocolException,IOException{

    HttpGet httpGet = new HttpGet(urlStr);
    HttpClient httpclient = new DefaultHttpClient();
    HttpResponse httpResponse = httpclient.execute(httpGet);

}

这将在引发异常时将异常作为 ClientProtocolException 或 IOException 抛出。

对于投掷

public void test(String str){

    if(str==null){
        throw new NullPointerException(); // now here you explicitly throws the error whenever you getting str object as null
    }

}
于 2013-04-02T05:48:56.000 回答
3

当我们说:function() 抛出 IOException 时,它意味着函数内部的代码能够抛出 IOException。所以调用这个函数的人应该在 try-catch 块中处理这个函数。所以在这里我们看到了检查异常的概念。

当我们说:
抛出 IOException。
您的代码块故意抛出此异常,并且需要有人捕获它。

于 2013-04-02T05:49:33.907 回答
3

throws :它只是将异常传递给调用者方法。也表明该方法有可能在运行时抛出一些异常,例如IOExceptionSQLException...如果发生检查异常(除RunTimeException或其子类之外的任何异常),则必须处理(try-catch)或再次传递给调用者.

throw:它是生成异常的子句。(简单来说)这就是你throws在方法签名中看到的原因,因为它们里面必须有任何throw声明

于 2013-04-02T05:49:37.770 回答
3

我们throws在方法签名中使用来指示方法能够引发特定异常。任何调用此方法的代码都必须处理可能发生特定异常的可能性。

throw关键字用于实际引发异常。它可以在任何可以放置语句的地方使用。

于 2013-04-02T05:50:28.980 回答