As classes de exceções em Kotlin herdam a classe Throwable
. Cada exceção tem uma mensagem, um rastreamento de pilha e
uma causa opcional.
Para lançar um objeto de exceção, use a palavra-chave throw
:
throw Exception("Exceção em Kotlin.")
Nota: Sempre que uma exceção é lançada, a execução da função é interrompida até que a exceção seja capturada ou propague para o chamador.
Para capturar uma exceção, use a expressão try
e catch
:
try {
// Código que pode lançar uma exceção
} catch (exception: Exception) {
// Tratamento da exceção
println("Ocorreu um erro: ${exception.message}")
}
Nota: Pode haver mais de um bloco
catch
, permitindo tratar diferentes tipos de exceções separadamente.
try {
// Código que pode lançar múltiplos tipos de exceção
} catch (exception: IOException) {
// Tratamento específico para IOException
println("Erro de I/O: ${exception.message}")
} catch (exception: Exception) {
// Tratamento genérico para outras exceções
println("Erro inesperado: ${exception.message}")
} finally {
// Bloco opcional que sempre será executado, com ou sem exceção
println("Operação finalizada.")
}
O bloco finally
é executado independentemente de uma exceção ser lançada ou não, e pode ser utilizado para liberar
recursos ou executar ações de limpeza.
Kotlin permite que você crie suas próprias classes de exceções, herdando de Throwable
ou de qualquer uma das
subclasses, como Exception
ou RuntimeException
:
class CustomException(message: String) : Exception(message)
throw CustomException(message = "Esta é uma exceção personalizada.")
Criar exceções personalizadas serve para representar erros específicos do domínio da sua aplicação.
Ir para corrotinas.