У меня есть исключение UserDoesNotHaveApiKey со следующим кодом:
public class UserDoesNotHaveApiKeyException extends Exception {}
Теперь на экране Splash я проверил, есть ли у пользователя ключ API или нет, и я хочу добавить исключение UserDoesNotHaveApiException в onError и открыть экран входа в систему.
Как вы можете внутри onError, у меня есть оператор if, и он всегда переходит к другому, даже очевидно, что у меня есть правильное исключение.
Зачем?
Короче говоря, RuntimeException отличается от других исключений.
Вы можете RuntimeException
Exception, соответствующий существующий его подкласс (кроме RuntimeException
и его подклассов, которые не проверены) или пользовательский подкласс Exception
.
В Java есть два типа исключений - проверенное и непроверенное исключение. Вот резюме:
- Проверено - Расширяет
java.lang.Exception
, для восстанавливаемого условия, попробуйте явно перехватить исключение, ошибка компиляции.- Unchecked - расширяет
java.lang.RuntimeException
для неисправимых условий, таких как ошибки программирования, нет необходимости в try-catch, ошибка времени выполнения.