Как узнать причину сбоя в API Google Диска Android
Есть ли способ узнать, что было причиной сбоя API Google Диска, когда обратный вызов onFailure вызывается с сообщением об ошибке исключения, установленным на null? Является ли законным подход разработчиков API-интерфейсов к исключениям без какого-либо конкретного подкласса и без какой-либо информации о причине сбоя?
На мой взгляд, это просто ошибка, вызванная плохим стилем кодирования и ухудшением культуры разработки ПО в Google, но дайте мне знать иначе, возможно, мне не хватает последних тенденций в современных гибких методологиях, используемых Google.
Непонятно, что показывать пользователю в этом случае, кроме непонятного и запутанного, но, к сожалению, очень распространенного сообщения "Неизвестная ошибка GDrive".
Tasks.call(mExecutor, Callable<Int>{
var pageToken: String? = null
var textFound = false
var otherFound = false
var cnt = 0
do {
val q = mDrive!!.files().list()
.setQ("name='some-text' or name='other-text'")
.setSpaces("drive")
.setFields("nextPageToken, files(id, name)")
.setPageToken(pageToken)
.setOrderBy("modifiedTime desc")
val files = q.execute()
for (file in files.getFiles()) {
textFound = file.name.equals("some-text")
otherFound = file.name.equals("other-text")
}
pageToken = files.nextPageToken
} while (pageToken != null)
cnt += if (plainFound) 1 else 0
cnt += if (encFound) 1 else 0
return@Callable cnt
}).addOnFailureListener { it: Exception
// it.message is equal to NULL here and I don't know what to tell the user
// except that obscure "Unknown GDrive Error"
}