Capturer une ou plusieurs exceptions
1. Capturer une exception
Comme on l’a vu, certaines exceptions sont récupérables, c’est-à-dire qu’elles ne devraient pas provoquer l’arrêt du programme. Plutôt que de planter, le programme compose avec l’exception et avertit l’utilisateur que l’opération demandée n’a pas pu aboutir.
Reprenons le programme qui effectue une division par 0 :
fun main()
{
val result = 12 / 0
println(result)
}
Pour capturer une exception dans un programme, il convient d’utiliser ce que l’on appelle un bloc try catch. try catch
Qu’est-ce exactement ?
Comme son nom le laisse deviner, ce bloc permet d’essayer d’exécuter une instruction et de capturer une potentielle exception si jamais tout ne se passe pas comme prévu.
Voici la syntaxe de ce bloc, elle est relativement simple :
try
{
//...
}
catch (exception: Exception)
{
//...
}
À l’intérieur du bloc try, on écrit l’ensemble des instructions qui peuvent provoquer une exception. Au niveau du bloc catch, on renseigne le type de l’exception que l’on souhaite capturer. Toujours dans ce bloc, il est alors possible de manipuler l’exception à travers une variable afin d’obtenir les informations qui composent, par exemple la stacktrace ou encore un message.
Dans le programme effectuant une division...