在函数内部处理 IOException

Handle IOException inside function

我有一种方法可以使用 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();
        }
    }
}

is there a way to handle the exception only in the called method and not also in the calling code?

如果您在 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);

in your opinion the exception handling is correct or do I need to add some other code?

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

除此之外,你想处理异常完全在你这边,但一般来说越早越好。

嘿嘿,

第一个问题

a) is there a way to handle the exception only in the called method and not also in the calling code?

从被调用的方法中抛出 IOException 或者 在方法中实现 try/catch。

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

还有关于2个问题

b) in your opinion the exception handling is correct or do I need to add some other code?

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

仅此而已!