jbr*_*aud 82 java exception-handling throws
所以我认为我对Java中的异常处理有一个很好的基本理解,但我最近阅读的一些代码让我有些困惑和怀疑.我想在这里解决的主要疑问是,一个人何时应该使用Java方法声明,如下所示:
public void method() throws SomeException
{
// method body here
}
Run Code Online (Sandbox Code Playgroud)
通过阅读一些类似的帖子,我收集到throws用作一种声明,在执行方法期间可能抛出SomeException.
我的困惑来自一些看起来像这样的代码:
public void method() throws IOException
{
try
{
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
}Run Code Online (Sandbox Code Playgroud)
你有什么理由想在这个例子中使用投掷吗?看来如果你只是在做IOException之类的基本异常处理,你只需要try/catch块就可以了.
Sha*_*ell 21
如果方法抛出已检查的异常,则只需要在方法上包含throws子句.如果该方法抛出运行时异常,则无需执行此操作.
有关已检查与未检查的异常的一些背景,请参阅此处:http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html
如果该方法捕获异常并在内部处理它(如在第二个示例中那样),则不需要包含throws子句.
您查看的代码并不理想.你应该:
抓住异常并处理它; 在这种情况下,这throws是不必要的.
删除try/catch; 在这种情况下,Exception将由调用方法处理.
捕获异常,可能执行一些操作然后重新抛出异常(而不仅仅是消息)
| 归档时间: |
|
| 查看次数: |
120199 次 |
| 最近记录: |