Какие знаешь другие возможности блока try-catch кроме отлавливания исключений

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

Ответ

Блок try-catch в Kotlin/Java может использоваться не только для обработки исключений, но и для:

  1. Возврата значения - в Kotlin можно возвращать значение из блока try или catch:
val result = try { 
    riskyOperation() 
} catch (e: Exception) { 
    fallbackValue 
}
  1. Ресурсного менеджмента - с помощью try-with-resources (Java) или use (Kotlin) для автоматического закрытия ресурсов:
FileInputStream("file.txt").use { stream -> 
    // работа с потоком
} // автоматически закроется
  1. Логирования - удобное место для записи ошибок перед пробросом исключения дальше

  2. Временного обхода проверок - когда нужно проигнорировать исключение в конкретном месте (хотя это антипаттерн)

  3. Контроля потока выполнения - альтернативный путь выполнения при ошибках