微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理函数内部的 IOException

如何解决处理函数内部的 IOException

我有一种方法可以使用 FileUtils 库将一些文件从共享内存复制到内部应用内存。

目标是处理 IOException 以免应用崩溃:如果某些文件没有从总数中复​​制出来,这是可以接受的。

在下面的第二个片段中有处理异常的被调用方法

我需要知道两件事:

a) 有没有办法只在被调用方法中处理异常 并且不是也调用代码中吗?

b) 在您看来异常处理是正确的还是我需要添加一些其他代码

代码如下:

try {
    copyfilesfromshared(context);
} catch (IOException e) {
    e.printstacktrace();
}


public void copyfilesfromshared(Context context) throws IOException {

    for (int ii = 0; ii < numfiles; ii++) {
        try {
            FileUtils.copyFiletoDirectory(files[ii],dirwrite);
        } catch (IOException e) {
            e.printstacktrace();
        }
    }
}

解决方法

有没有办法只在被调用的方法中而不是在调用代码中处理异常?

如果您在 copyfilesfromshared() 函数中处理异常,则不需要声明 throws IOException

public void copyfilesfromshared(Context context) {
    for (int ii = 0; ii < numfiles; ii++) {
        try {
            FileUtils.copyFileToDirectory(files[ii],dirwrite);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

然后就可以正常使用了,不用再次声明try {...} catch(...)

 copyfilesfromshared(context);

您认为异常处理是正确的还是我需要添加一些其他代码?

这对我来说看起来不错,但最好检查 FileUtils.copyFileToDirectory 的签名,如果它也抛出任何其他异常,您可能也想在这里捕获。

除此之外,您想要处理异常完全取决于您,但通常越早越好。

,

嘿,

对于你的第一个问题

a) 有没有办法只在被调用的方法中处理异常 并且不在调用代码中?

从被调用的方法或抛出 IOException 之间有一个选择 实现 try/catch 内部方法。

这就是你的问题 您正在选择两个选项而不是一个,所以只需选择一个。

关于 2 个问题

b) 在您看来异常处理是正确的还是我需要 添加一些其他代码?

此时异常处理是最好的,所以不要想和其他的想

仅此而已!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。