Gérer les exceptions dans Kotlin
- Concept d’exception dans Kotlin
- Gérer les exceptions non contrôlées dans Kotlin
- Créer une exception personnalisée dans Kotlin
-
Gérer les exceptions à l’aide de l’annotation
@Throws
dans Kotlin
La gestion des exceptions est un concept fondamental de la plupart des langages de programmation. Il aide à gérer les exceptions afin que le code s’exécute sans aucun problème.
Même Kotlin permet la gestion des exceptions avec l’annotation @Throws
. Cet article examinera comment nous pouvons utiliser l’annotation @Throws
pour gérer les exceptions dans Kotlin.
Mais avant d’aborder cela, examinons le concept de base des exceptions dans Kotlin.
Concept d’exception dans Kotlin
Les exceptions Kotlin sont similaires aux exceptions Java. Ils sont tous les descendants de la classe Throwable
de Kotlin; cependant, il y a aussi quelques différences.
Contrairement à Java, Kotlin n’a aucune exception vérifiée. Ainsi, il n’y a que des exceptions non contrôlées ou d’exécution dans Kotlin.
De plus, Kotlin permet de créer des exceptions personnalisées. Par conséquent, nous pouvons créer notre propre code de gestion des exceptions pour éviter toute erreur d’exécution.
Gérer les exceptions non contrôlées dans Kotlin
Comme indiqué précédemment, les exceptions non vérifiées sont celles qui se produisent pendant l’exécution. Toutes les exceptions Java non vérifiées, y compris ArithmeticException
, NullPointerException
, NumberFormatException
, etc., sont des exemples d’exceptions non vérifiées dans Kotlin.
Nous pouvons gérer une exception non vérifiée dans Kotlin en utilisant le bloc try-catch
et le mot-clé finally
.
Voici un exemple de code pour illustrer les exceptions non contrôlées.
fun main(args: Array<String>) {
try {
val i:Int = 12;
val v:String = "Hello!";
v.toInt();
}
catch(e:Exception) {
e.printStackTrace();
}
finally {
println("This is an example of unchecked exception handling using the try-catch block.");
}
}
Production:
Cliquez ici pour vérifier la démo de l’exemple de code.
Créer une exception personnalisée dans Kotlin
Nous pouvons également créer des exceptions personnalisées dans Kotlin en utilisant le mot-clé throw
. Créons un code dans lequel nous déclarons une variable entière.
Nous vérifierons alors si le nombre est égal ou supérieur à 18. Si c’est le cas, nous imprimerons un message indiquant : "You are eligible to vote."
; sinon, nous lancerons un message d’erreur personnalisé.
fun main(args: Array<String>) {
val v:Int;
v = 16;
if(v >= 18)
{
println("Welcome!! You are eligible to vote.")
}
else
{
//throwing custom exception using the throw keyword
throw customExceptionExample("Sorry! You have to wait to cast a vote.")
}
}
//custom exception class
class customExceptionExample(message: String) : Exception(message)
Production:
Cliquez ici pour vérifier la démo de l’exemple de code.
Gérer les exceptions à l’aide de l’annotation @Throws
dans Kotlin
Bien qu’il n’y ait pas d’exceptions vérifiées, nous pouvons toujours les gérer dans Kotlin. Nous pouvons le faire en utilisant l’annotation d’exception Kotlin @Throws
.
L’annotation @Throws
est utile pour l’interopérabilité Java. Par conséquent, s’il existe des codes d’exception vérifiés que nous devons convertir en Java, nous pouvons utiliser l’annotation @Throws
pour la machine JVM.
Voici un exemple de code pour démontrer la même chose.
import java.io.*
import kotlin.jvm.Throws
fun main(args: Array<String>) {
val va=0
var res=0
try {
res=va/0 // Since nothing is divisible by 0, it will throw an exception
} catch (excep: Exception) {
// While this is an Airthmetic exception,
// we will throw a NullPointerException using the function call
excep().throwJavaChecked()
}
}
class excep{
@Throws(NullPointerException::class)
fun throwJavaChecked() {
throw NullPointerException()
}
}
Production:
Cliquez ici pour vérifier la démo de l’exemple de code.
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn