抛出异常在这做什么?

时间:2014-04-14 00:42:01

标签: java oracle

在读取URL时读取oracle文档,但我不确定抛出异常的内容是什么?

import java.net.*;
import java.io.*;

public class URLReader {
    public static void main(String[] args) throws Exception {

        URL oracle = new URL("http://www.oracle.com/");
        BufferedReader in = new BufferedReader(
        new InputStreamReader(oracle.openStream()));

        String inputLine;
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}

http://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html

2 个答案:

答案 0 :(得分:1)

该程序内部调用的一些方法(例如与IO相关的事情通常会这样做)抛出checked exceptions。已检查的异常必须使用try/catch处理,或者包含在方法签名中,并带有throws子句,这些与IO相关的方法有。

通过用throws Exception标记主方法,他们基本上说“如果我的程序中发生异常,就让它死掉。我不想处理它们。”在现实世界的代码中,您可能希望处理一些事情,例如互联网连接比仅让整个程序死亡更优雅,但在这种情况下,他们只是想写一个简短的例子。

答案 1 :(得分:1)

抛出异常意味着如果代码中的任何一点都存在异常(例如,如果写入文件时出现问题,则会产生IOException),那么这将被传递给上面的方法。但是,在这种情况下,上面没有方法,所以如果抛出异常,程序将崩溃并将异常中的文本输出到控制台。

如果您希望程序继续,也可以捕获例外:

try {
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();
} catch (Exception e) {
    e.printStackTract();
}

有关Java异常的更多信息,请访问here