You cannot do so directly as enospc is signaled as a java.io.IOException
which will catch many other io related issues as well. But by looking up the cause and the error it's signalling you can zoom in and handle enospc exceptions but rethrow all others, like this:
} 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;
}
}
Sidenote: } catch (Exception e) {
is generally considered bad practice.