- Similar com o Java
- É uma expressão, ou seja, é possível ser um retorno de uma função
- É lançado quando um função não é completada de forma correta
- É possível tratá-la ou apenas propagá-la
- Palavra chave:
throw
- Exemplo
throw IllegalArgumentException()
- Palavra cahve:
try
catch
finally
-
Exemplo com bloco TRY-CATCH
try { // Código } catch (e: Exception) { // Código }
-
Exemplo com bloco TRY-CATCH-FINALLY
try { // Código } catch (e: Exception) { // Código } finally { // Código }
- Exemplo
fun porcentagem(numero: Int): String { return if (numero in 1..100) { "$numero%" } else { throw IllegalArgumentException("$numero deve estar entre 1 e 100") } }
- Código fonte: clique aqui
- Exemplo
fun lerIdade(): Int? { val reader = BufferedReader( FileReader( File("src/main/resources/idades.txt") ) ) return try { Integer.parseInt(reader.readLine()) } catch (e: NumberFormatException) { null } finally { reader.close() } }
- Código fonte: clique aqui