1

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

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

4 回答 4

7

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

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

于 2013-10-20T09:06:12.930 回答
3

您可以抛出一个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)");
}

尽管如此,a java.lang.RuntimeException(或任何派生的东西)的行为就像一个正常的异常,即。如果没有被捕获,它会终止您的程序。

于 2013-10-20T09:02:47.430 回答
3
throw new RuntimeException('someMessagehere')
于 2013-10-20T15:22:33.093 回答
-1

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

于 2017-01-25T12:10:25.543 回答