何时在Java方法声明中使用throws?
所以我认为我对Java中的异常处理有一个很好的基本理解,但我最近阅读的一些代码给了我一些困惑和怀疑。我想在这里解决的主要疑问是,一个人何时应该使用Java方法声明,如下所示:
public void method() throws SomeException
{
// method body here
}
通过阅读一些类似的帖子,我收集到throws用作一种声明,在执行方法期间可能抛出SomeException。
我的困惑来自一些看起来像这样的代码:
public void method() throws IOException
{
try
{
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
}
你有什么理由想在这个例子中使用投掷吗?看来如果你只是在做IOException之类的基本异常处理,你只需要try / catch块就可以了。
没有找到相关结果
已邀请:
7 个回复
辟官陡板休
荆怖赡
抽法
是 unnecesary。 删除
;在这种情况下 异常将由a处理 调用方法。 可能会抓住异常 执行一些操作,然后重新抛出 异常(不只是消息)
感秆暴壳
是多余的。它可能是从之前的一些实现中留下的 - 也许最初抛出异常而不是捕获块中的异常。
镶骄册筷
素汞读
要么
}
臀夯脖锑
输出是
该方法不会声明任何“抛出”异常,但抛出它们! 诀窍是抛出的异常是RuntimeExceptions(未经检查),不需要在方法上声明。 对于该方法的读者来说,这有点误导,因为她所看到的只是一个“扔掉”;声明但没有声明抛出异常 现在,如果有的话
我们必须在方法中声明“throws”异常,否则我们会得到编译器错误。