gpt4 book ai didi

android - 在 Android 上只捕获 ENOSPC

转载 作者:太空狗 更新时间:2023-10-29 16:12:45 25 4
gpt4 key购买 nike

这可能是一个基本问题,但我找不到答案。当你只想在 Android 中捕获 FileNotFound 时,你可以这样写

        } catch (FileNotFoundException e)  {

但是如果你想准确捕获 ENOSPC(设备上没有剩余空间)错误,你会写什么?我不能使用“catch (Exception e)”,因为我想明确处理这个错误。

最佳答案

您不能直接这样做,因为 enospc 被标记为 java.io.IOException,这也会捕获许多其他与 io 相关的问题。但是通过查找原因和它发出的错误信号,您可以放大并处理 enospc 异常,但重新抛出所有其他异常,如下所示:

} catch (IOException ex) {
boolean itsanenospcex = false;
// make sure the cause is an ErrnoException
if (ex.getCause() instanceof android.system.ErrnoException) {
// if so, we can get to the causing errno
int errno = ((android.system.ErrnoException) ex.getCause()).errno;
// and check for the appropriate value
itsanenospcex = errno == OsConstants.ENOSPC;
}
if (itsanenospcex) {
// handle it
} else {
// if it's any other ioexception, rethrow it
throw ex;
}
}

旁注:} catch (Exception e) {generally considered bad practice .

关于android - 在 Android 上只捕获 ENOSPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40141552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com