什么是android studio中“方法调用忽略的可抛出结果”?

时间:2015-12-31 15:31:56

标签: java android intellij-idea inspection

我在android studio中有这样的代码:

@Override
    public void onLocationChanged(AMapLocation amapLocation) {
        if (amapLocation != null && amapLocation.getAMapException() != null
                && amapLocation.getAMapException().getErrorCode() == 0) {
            // get location information
            mLocation = amapLocation;
            MyApp.getInstance().getPrefs().Latitude()
                    .put("" + amapLocation.getLatitude());
            MyApp.getInstance().getPrefs().Longitude()
                    .put("" + amapLocation.getLongitude());
        }

    }

方法getAMapException返回从Exception扩展的AMapLocException实例。

现在android studio显示了一些提示,我不知道如何处理它们。 enter image description here

  

报告调用调用结果的特定方法的调用   忽略并返回一个类型(或子类型)的对象   的Throwable 的。通常这些类型的方法意味着工厂   应该抛出异常的方法和结果。

我还通过谷歌找到了ThrowableResultOfMethodCallIgnored.java文件来源,但我仍然不知道如何处理它。

1 个答案:

答案 0 :(得分:2)

这只是一个警告,你已经调用了一个返回Throwable的方法,但实际上并没有抛出它。

一种解决方案是执行以下操作

Throwable t = amapLocation.getAMapException();
if (t != null) {
    throw t;
}

当然你没有来抛出异常。您可以选择忽略或在条件中使用它。