可以抛出运行时异常吗?

时间:2013-10-20 08:56:34

标签: java exception runtimeexception

我编写了一个类,我试图抛出一个运行时异常。代码如下

public class ExceptionTest 

{

    public static void ReadFile() throws RuntimeException, FileNotFoundException{
    try{

    BufferedReader b =new BufferedReader(new FileReader("I:\\Workspace\\Basic Java\\bin\\Exceptions\\List To Read.txt"));
    String s = b.readLine();
    while(s!=null){
        System.out.println(s);
        s=b.readLine();
    }
    }
    catch(RuntimeException e){
        throw e;
    }
    catch(FileNotFoundException e){
        throw e;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }

我的主要班级看起来像

public class TheMain {
public static void main(String args[]){
    ExceptionTest.ReadFile();
}
}

我怀疑是否可以抛出运行时异常? 请帮忙

4 个答案:

答案 0 :(得分:5)

RunTimeExceptionunchecked exception。您可以抛出它,但您不一定要这样做,除非您要向API的用户明确指定此方法可以抛出未经检查的异常。但是,如果您在此方法的javadoc中提及此事实(该方法可以抛出RunTimeException),那么即使这似乎也没有必要。

所以,简而言之,是的,你可以抛出它,但你不必这样做,因为它没有为你提供任何给定的优势,并且需要额外的代码行

答案 1 :(得分:3)

throw new RuntimeException('someMessagehere')

答案 2 :(得分:2)

您可以抛出java.lang.RuntimeException(或任何派生的异常),因为它是正常的异常。与其他异常的区别在于,您不需要在方法可以抛出的抛出但未捕获的异常列表中提及它,即。

public void foo(int bar) throws RuntimeException {
    throw new RuntimeException("foo(bar)");
}

具有相同的效果

public void foo(int bar) {
    throw new RuntimeException("foo(bar)");
}

尽管如此,java.lang.RuntimeException(或任何派生的)表现得像普通的例外,即。它会终止你的程序,如果没有被抓住的话。

答案 3 :(得分:-1)

理想情况下,永远不应故意抛出运行时异常。 Java在Checked Exception和Unchecked中分类异常,即运行时异常。我们应该总是抛出检查异常。未经检查的异常不应该在程序中发生,因为它们应该以编程方式处理而不是通过抛出它们来处理。