我正在开发一个使用多个 UI 元素(例如 Button、TextView 等)的 Android 应用程序,并且我想对这些元素执行错误处理。 (注意:这些元素不是使用 XML 文件创建的;一切都是以编程方式完成的。)
例如,在为任何 TextView here 设置 Font Variation Settings 时,他们明确提到,如果设置失败,将会引发异常。
同样,当我尝试创建 UI 元素时,以编程方式创建的内容如下所示:
public fun CreateObject (pContext : Context) : Unit
{
val button_elem : Button
// If this call fails how should this be taken care of?
button_elem = Button (pContext) // Please consider the context as not null
}
它是一个构造函数,它不会返回任何值,但在某些罕见的情况下(例如内存不足)它可能会抛出一些异常,但文档中没有提到任何内容here。
或者Android能保证这些API永远不会失败吗?需要这些问题的详细答案吗?
或者Android能保证这些API永远不会失败吗?
不。几乎每一行代码都可能失败,例如您引用的
OutOfMemoryError
。
// 如果调用失败应该如何处理?
让应用程序崩溃。如果您在尝试实例化
OutOfMemoryError
时得到 Button
,则您的进程堆无法修复,并且您尝试执行的任何其他操作也将触发 OutOfMemoryErrors
。