我编写了一个类,我试图抛出一个运行时异常。代码如下
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();
}
}
我怀疑是否可以抛出运行时异常? 请帮忙
答案 0 :(得分:5)
RunTimeException
是unchecked 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中分类异常,即运行时异常。我们应该总是抛出检查异常。未经检查的异常不应该在程序中发生,因为它们应该以编程方式处理而不是通过抛出它们来处理。