Java 是否可以引发运行时异常?

Java 是否可以引发运行时异常?,java,exception,runtimeexception,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\\Exception

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

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();
}
}
我的疑问是我们能否抛出运行时异常?
请帮助

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

具有与相同的效果


尽管如此,
java.lang.RuntimeException
(或任何派生的异常)的行为与正常异常类似,即如果未捕获,它将终止程序。

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

具有与相同的效果


尽管如此,
java.lang.RuntimeException
(或任何派生的)的行为与普通异常类似,即如果未捕获,它将终止您的程序。

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


因此,简而言之,是的,您可以抛出它,但您不必这样做,因为它不会为您提供任何给定的优势,并且会花费您额外的几行代码。您可以抛出它,但不一定非得抛出,除非您想显式地向API的用户指定此方法可以抛出未经检查的异常。但是,如果您在javadoc中提到此方法的这个事实(该方法可以抛出RunTimeException),那么即使这样似乎也没有必要

throw new RuntimeException('someMessagehere')

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

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

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

是的,你可以。你可以抛出任何扩展Throwable的东西——检查javadocs。如果你不能从运行时异常中恢复,那么你可以抛出它。是的,你可以抛出运行时异常。您还说,“我怀疑我们没有在主类中处理抛出的错误,但是我的JVM没有抛出错误?”抛出的错误是什么?你能提供更多关于错误是什么的信息,以及你实际看到了什么吗?对不起,那是我的错误。我们需要在主要时间处理它是的,你可以。你可以抛出任何扩展Throwable的东西——检查javadocs。如果你不能从运行时异常中恢复,那么你可以抛出它。是的,你可以抛出运行时异常。您还说,“我怀疑我们没有在主类中处理抛出的错误,但是我的JVM没有抛出错误?”抛出的错误是什么?你能提供更多关于错误是什么的信息,以及你实际看到了什么吗?对不起,那是我的错误。我们需要从根本上解决这是一个强烈的意见问题。有很多很好的论据可以解释为什么检查异常是个坏主意。检查异常要求客户端(调用系统)处理它们,并针对异常情况显示适当的错误消息。我想知道为什么检查异常是个坏主意的好理由:)google上有很多资源(例如这里:)。我不一定要说服你,检查异常是完全邪恶的。。。但我强烈反对你的说法,即“理想情况下,运行时异常永远不应该被故意抛出”。这是一个强烈的观点问题。有很多很好的论据可以解释为什么检查异常是个坏主意。检查异常要求客户端(调用系统)处理它们,并针对异常情况显示适当的错误消息。我想知道为什么检查异常是个坏主意的好理由:)google上有很多资源(例如这里:)。我不一定要说服你,检查异常是完全邪恶的。。。但我强烈不同意您的说法,即“理想情况下,运行时异常永远不应该被故意抛出”。
throw new RuntimeException('someMessagehere')
throw new RuntimeException('someMessagehere')