【发布时间】:2018-03-06 01:04:04
【问题描述】:
我正在构建一个处理保存的 Wi-Fi 信息的 Android 应用。我有一个返回 WifiEntry 对象的 ArrayList 的函数,但如果它无法访问 Wi-Fi 配置文件(例如,如果 root 访问不可用),它将返回 null。目前,我是这样处理的:
wifiEntries = try {
WifiEntryLoader().readOreoFile()
} catch (e: IllegalStateException) {
// Important irelevant stuff
ArrayList()
}
我的问题是:有没有比捕获 IllegalStateException 更好的方法来处理 null 的可能性?我不想调用我的加载器函数两次。据我所知,我不能使用 Elvis 运算符来运行代码,除非我将它与 if 表达式一起使用(丑陋和 hacky)
【问题讨论】:
-
哪个函数返回
null,哪个函数准确抛出异常? -
null 和 IllegalStateException 有什么关系?
-
@zsmb13
WifiEntryLoader().readOreoFile()函数返回 null,@shmosel 将 null 分配给wifiEntriesArrayList 会引发异常。
标签: null kotlin illegalstateexception convention