Исключения (Exceptions) — это специальные объекты, которые возникают при возникновении нештатной ситуации во время выполнения программы. Они прерывают нормальный поток выполнения и позволяют обработать ошибку.
// Checked исключения (должны обрабатываться)
class IOException extends Exception {}
// Unchecked исключения (Runtime)
class NullPointerException extends RuntimeException {}
Характеристика | Checked | Unchecked |
---|---|---|
Обязательность обработки | Да | Нет |
Наследование | от Exception | от RuntimeException |
Когда возникают | Внешние ошибки (IO, сеть) | Ошибки программиста |
try {
val file = File("data.txt")
file.readText()
} catch (e: FileNotFoundException) {
Log.e("TAG", "Файл не найден", e)
showErrorToast()
} catch (e: IOException) {
Log.e("TAG", "Ошибка ввода-вывода", e)
} finally {
closeResources() // Всегда выполняется
}
Kotlin не имеет checked исключений, но сохраняет механизм try-catch-finally:
fun readFile() {
val text = try {
File("data.txt").readText()
} catch (e: IOException) {
"Default text"
}
}
исключения — это мощный механизм обработки ошибок, который при правильном использовании делает код более надежным и поддерживаемым. В Android-разработке особенно важно грамотно обрабатывать исключения, так как мобильные устройства работают в нестабильных условиях (плохая сеть, мало памяти и т.д.).