Что такое "Throwable Result Of Method Call Ignored" в андроид студии?

У меня есть такие коды в 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 возвращает экземпляр AMapLocException, который расширяется от Exception.

Теперь андроид студия показывает некоторые советы, и я не знаю, как с ними справиться.

Сообщает о вызовах определенных методов, в которых результат вызова игнорируется и которые возвращают объект типа (или подтипа) Throwable. Обычно эти типы методов подразумеваются как фабричные методы для исключений, и результат должен быть выдан.

и я также нашел источник файла ThrowableResultOfMethodCallIgnored.java от Google, но я до сих пор не знаю, как с этим справиться.

1 ответ

Решение

Это просто предупреждение о том, что вы вызвали метод, который возвращает Throwable, но на самом деле вы его не выбрасываете.

Одним из решений было бы сделать следующее

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

Конечно, вы не должны бросать исключения. Вы можете либо игнорировать, либо использовать его в условных выражениях, как у вас.

Другие вопросы по тегам