Kotlin для початківців: Структури даних — Помилки та Попередження
Архів
22 листопада 2022 р.3 хв читанняОновлено 27 лютого 2026 р.Kotlin для початківців
Поговоримо про досить важливу річ у Kotlin – помилки. Ми вже стикалися з ними при розгляді деяких тем, тому розберімося з ними детальніше.
ℹ️ Визначення
Помилка – це стан деякої функціональності або програми, при якій неможлива робота цієї функціональності чи програми. Помилки поділяються на:
- Компіляційні (виявляються компілятором до запуску програми).
- Виконаційні (стаються під час роботи програми). Вони поділяються на
Exception(виключення) таError(помилки середи виконання).
Компіляційні помилки
Вони виникають, коли ви неправильно використовуєте ключові слова, або пишете те, чого не існує в мові Kotlin. Наприклад:
kotlin
Ми отримаємо помилку:
text
Тут
(1, 9) означає, що помилка сталася на 1-й лінії та 9-му символі.Попередження (Warnings)
Компілятор також може показувати попередження. Код із ними працюватиме, але вони вказують на потенційні прогалини. Наприклад, якщо ви створили змінну, але не використовуєте її:
kotlin
Виконаційні помилки
Усі такі помилки будуються від однієї головної абстракції — класу
Throwable, який має двох основних спадкоємців: Exception та Error.Error
Це помилки, пов'язані із середовищем виконання (наприклад, JVM). Зазвичай ви не повинні їх обробляти у своєму коді. Приклад:
OutOfMemoryError — коли програмі не вистачає пам'яті для завантаження величезного рядка чи об'єкта.Exception
Це помилки, пов'язані безпосередньо з логікою вашого коду. Їх можна (і часто треба) передбачати та обробляти. Приклади:
NumberFormatException (коли текст не є числом) або StringIndexOutOfBoundsException (спроба отримати символ за індексом, якого не існує).Власні помилки
Ви можете створювати власні класи помилок, спадкуючи
Exception:kotlin
Запобігання помилкам
1. Перевірка даних
Найочевидніший варіант — перевіряти вхідні дані за допомогою
if або when.kotlin
ℹ️ Нові функції для перевірки рядків
String.indices— діапазон індексів, що існують у рядку.String.length— фізична кількість символів у рядку (якщо рядок порожній, length = 0).String.lastIndex— індекс останнього символу (якщо рядок порожній, він дорівнює -1).
2. Оператор try-catch
Якщо помилку важко передбачити перевіркою, використовуйте блок
try-catch. Ви також можете використовувати його як вираз:kotlin
Ви можете ловити декілька типів помилок одночасно:
kotlin
3. Null oriented design
Kotlin пропонує безпечні альтернативи, що повертають
null замість того, щоб "класти" програму. Такі функції зазвичай мають суфікс OrNull:kotlin
Висновок
- Помилки бувають компіляційні та виконаційні.
Throwable— корінь усіх помилок, що поділяється наException(логіка) таError(система).- Використовуйте перевірки та підхід
OrNullвсюди, де це можливо, аtry-catch— лише як останній засіб.
Kotlin для початківців