Какие знаешь виды исключений

«Какие знаешь виды исключений» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android/Java есть несколько основных видов исключений:

  1. Checked Exceptions - проверяемые (наследники Exception), требуют обработки:
try {
    FileInputStream file = new FileInputStream("file.txt");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
  1. Unchecked Exceptions - непроверяемые (наследники RuntimeException):
// NullPointerException, IndexOutOfBoundsException и т.д.
String str = null;
str.length(); // NullPointerException
  1. Errors - критические ошибки (OutOfMemoryError, StackOverflowError), обычно не перехватываются.

  2. Custom Exceptions - пользовательские исключения:

class NetworkException extends Exception {
    public NetworkException(String message) {
        super(message);
    }
}

В Kotlin нет checked exceptions, все исключения - unchecked.