我有一种情况,我可能会遇到一个可能的null,我不希望我的程序崩溃。它只发生在一小部分用户身上,我不完全确定原因,但我知道正在进行的代码部分。基本上isAchieved()
是一个应该返回一个布尔值的检查,但在少数情况下,它返回一个null。这是一个scoreloop库的一部分,我怀疑它们的代码可能存在错误。
而不是让一个强制关闭并退出程序有没有办法检查这个值是否会返回null并且只是在这种情况下跳过这部分代码?
if (_achievements[ltc].isAchieved()) {
// Do stuff for 99.9% of users here, but skip if .isAchieved() would force close
}
答案 0 :(得分:1)
boolean checker=false;
try{
checker=_achievements[ltc].isAchieved();
}
catch(NullPointerException e){
}
if (checker) {
//content
}
您是否考虑过这样做?。