因此,我认为我对Java中的异常处理有很好的基本了解,但是最近我正在阅读一些使我有些困惑和怀疑的代码。我要在这里解决的主要疑问是,何时一个人使用时会抛出如下所示的Java方法声明:
public void method() throws SomeException { // method body here }
通过阅读一些类似的文章,我收集到的 引发信息 被用作一种声明, 表明 可以在方法执行期间引发 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块即可。
如果捕获的是异常类型,则无需抛出异常,除非要重新抛出它。在您发布的示例中,开发人员应该做一个或另一个,而不是两者都做。
通常,如果您不打算执行任何异常操作,则不应捕获该异常。
您可以执行的最危险的操作是捕获异常,而不对其进行任何处理。