🗒 Задача¶
Скопируй класс из предыдущей задачи (без логики заполнения телефонной книги) и измени его название для избегания конфликтов.
Для получения номера программа считывает ввод пользователя с типом String по умолчанию. Приведи строку к типу Long. Если пользователь ввел что-либо, кроме цифр — программа падает.
Необходимо избежать падения программы при попытке приведения строки к типу Long. Отлови ошибку и выведи ее название в консоль.
❌ Ошибки¶
- не используют try catch вообще
✏️ Комментарии¶
Использование оператора `!!` подразумевает, что ты уверен в том, что значение не может быть `null`. Однако, если это не так, то приложение "упадет" с ошибкой. Поэтому этот оператор считается опасным и не рекомендуется использовать. Только в крайних случаях.
Это противоречит основной идее безопасности типов в Kotlin, поэтому лучше использовать альтернативные способы обработки нулабельных значений. Такие как оператор безопасного вызова `?.`, элвис-оператор `?:` или оператор `let`.
Чтобы отловить ошибку воспользуйся блоком try catch. Подробнее о нем и о способе применения можно посмотреть [здесь](https://kotlinlang.org/docs/exceptions.html#exception-classes)
можно объединить создание переменной `number` с try catch таким образом:
val number = try {
readln().toLong()
}
catch (e: Exception) {
println("Ошибка: ${e.javaClass.simpleName}")
println("Текст ошибки: ${e.message}")
null
}
🧾 Решение¶
// класс и объект можно не создавать (игнорировать наличие или отсутствие)