gpt4 book ai didi

Android:当驱动器空间不足时如何检查 IOException 原因

转载 作者:行者123 更新时间:2023-11-29 01:08:45 24 4
gpt4 key购买 nike

如何在捕获时检查 IOException 原因?

e.getCause().getMessage() 是否总是出于相同的原因在所有 android 版本和设备上返回相同的字符串?检查 IOException 的原因是否是 android.system.ErrnoException: write failed: ENOSPC (No space left on device) 是否是检查用户设备是否在该特定驱动器上空间不足的好方法?

try {
// Here I'm writing a file with OutputStream
} catch (IOException e) {
// Check if IOException cause equals android.system.ErrnoException: write failed: ENOSPC (No space left on device)
} finally {

}

最佳答案

依赖错误消息通常不是一个好主意,因为它们可能因操作系统版本而异。如果针对 API 级别 21 或更高级别,则有一种优雅的方法可以根据错误代码找到 IOException 的实际根本原因。 (ENOSPC 在你的情况下) https://developer.android.com/reference/android/system/OsConstants#ENOSPC

可以这样检查:

catch (IOException e) {
if (e.getCause() instanceof ErrnoException) {
int errorNumber = ((ErrnoException) e.getCause()).errno;
if (errorNumber == OsConstants.ENOSPC) {
// Out of space
}
}
}

errnohttps://developer.android.com/reference/android/system/ErrnoException 中的公共(public)字段

关于Android:当驱动器空间不足时如何检查 IOException 原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978111/

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