2016-01-25 5 views
1

Я пытаюсь выяснить это на некоторое время, так что у меня есть метод, который вызывает метод подсчета(), который предполагают, чтобы бросить и исключениеAndroid необработанное исключение ошибок

граф() метод

public int count() throws ParseException { 
    return something that may throw the ParseException 
} 

и затем вызывая здесь

ParseQuery<ParseObject> query = ParseQuery.getQuery(className); 
query.fromLocalDatastore(); 

int result = 0; 

try { 
    result = query.count(); 
} catch (ParseException e) { 
    result = 0; 
} 

return result; 

Теперь я пытался различные сценарии, но независимо от того, что IDE еще не компиляции и дать мне следующую ошибку

Error:(254, 11) error: exception ParseException is never thrown in body of corresponding try statement 

Error:(253, 33) error: unreported exception ParseException; must be caught or declared to be thrown 

в строке результата = query.count();

Я понятия не имею, что я делаю не так, спасибо за любую помощь

+1

Вы уверены, что у вас нет двух ** разных ** классов ParseException? – Codebender

+0

Если вы используете parse sdk, убедитесь, что ваш импорт является 'com.parse.ParseException'. –

+0

Да, это была проблема, есть 2 класса с тем же именем, но в другом пакете, не уверен, почему IDE импортировала неправильный, возможно, вы можете поставить комментарий как ответ на отмеченный как правильный, спасибо! – goseta

ответ

1

Вы не можете поймать исключение, которое никогда не будет брошенным вашей Ьга блок, как ошибка предложила

try { 
    result = query.count(); // this statement not throwing ParseException 
} catch (ParseException e) { // you are trying to catch ParseException that never gonna throw. 
    result = 0; 
} 

Это как

try { 
      .... code // throws ExceptionA 
     } 
    catch (ExceptionB e) { // and calling ExceptionB 

     } 
Смежные вопросы