首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常处理

异常处理
EN

Stack Overflow用户
提问于 2016-02-03 16:36:16
回答 2查看 52关注 0票数 0

是否有可能在抛出异常的方法之外捕获异常?

举个例子:

代码语言:javascript
复制
public double[] readFile(String filename) throws IOException
    {
    File inFile = new File(filename);
    Scanner in = new Scanner(inFile);
    try
    {
        readData(in);
        return data;
    }
    finally
    {
        in.close();
    }
}

如何在方法中捕获IOException?我能做catch(IOException){}吗?

EN

回答 2

Stack Overflow用户

发布于 2016-02-03 16:40:22

是的,tou可以这样做,捕获someMethod()方法中抛出的异常,如下所示:

代码语言:javascript
复制
   public double[] readFile(String filename) throws IOException
    {
    ...
    }

在另一种方法中,例如:

代码语言:javascript
复制
  public void someMethod(){
   try
    {
   readFile(in);
   return data;
    }catch(IOException io){
   }
    ...
  }
票数 1
EN

Stack Overflow用户

发布于 2016-02-03 16:41:15

您不需要在此方法中使用try/catch语句,因为您不希望在内部处理异常,因此希望抛出异常。(这就是throws关键字的作用)

所以你可以这么做:

代码语言:javascript
复制
public double[] readFile(String filename) throws IOException
{
    File inFile = new File(filename);
    Scanner in = new Scanner(inFile);

    readData(in);
    // If everything goes normally, the execution flow shall pass on to
    // the next statements, otherwise if an IOException is thrown, it shall
    // be handled by the caller method (main)

    in.close();
    return data;
}

&在main方法中,处理潜在的异常:

代码语言:javascript
复制
try {
    double[] result = readFile("filename.ext");
    // ...
}
catch(IOException e) {
    // Handle the exception
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35182649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档