Behandeln Sie Ausnahmen in Kotlin
- Konzept der Ausnahme in Kotlin
- Behandeln Sie ungeprüfte Ausnahmen in Kotlin
- Erstellen Sie eine benutzerdefinierte Ausnahme in Kotlin
-
Behandeln Sie Ausnahmen mit der Annotation
@Throws
in Kotlin
Die Ausnahmebehandlung ist ein grundlegendes Konzept der meisten Programmiersprachen. Es hilft bei der Behandlung von Ausnahmen, sodass der Code problemlos ausgeführt werden kann.
Sogar Kotlin erlaubt die Ausnahmebehandlung mit der Annotation @Throws
. In diesem Artikel wird untersucht, wie wir die Annotation @Throws
verwenden können, um Ausnahmen in Kotlin zu behandeln.
Aber bevor wir darauf eingehen, schauen wir uns das grundlegende Konzept der Ausnahmen in Kotlin an.
Konzept der Ausnahme in Kotlin
Kotlin-Ausnahmen ähneln Java-Ausnahmen. Sie alle sind Nachkommen der Throwable
-Klasse in Kotlin; Es gibt jedoch auch einige Unterschiede.
Im Gegensatz zu Java hat Kotlin keine geprüften Ausnahmen. Daher gibt es in Kotlin nur ungeprüfte oder Laufzeitausnahmen.
Außerdem ermöglicht Kotlin das Erstellen benutzerdefinierter Ausnahmen. Daher können wir unseren eigenen Ausnahmebehandlungscode erstellen, um Laufzeitfehler zu verhindern.
Behandeln Sie ungeprüfte Ausnahmen in Kotlin
Wie bereits erwähnt, sind ungeprüfte Ausnahmen diejenigen, die während der Laufzeit auftreten. Alle ungeprüften Java-Ausnahmen, einschließlich ArithmeticException
, NullPointerException
, NumberFormatException
usw., sind Beispiele für ungeprüfte Ausnahmen in Kotlin.
Wir können eine ungeprüfte Ausnahme in Kotlin mit dem Block try-catch
und dem Schlüsselwort finally
behandeln.
Hier ist ein Beispielcode, um ungeprüfte Ausnahmen zu demonstrieren.
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.");
}
}
Ausgabe:
Klicken Sie hier, um die Demo des Beispielcodes zu überprüfen.
Erstellen Sie eine benutzerdefinierte Ausnahme in Kotlin
Wir können auch benutzerdefinierte Ausnahmen in Kotlin mit dem Schlüsselwort throw
erstellen. Lassen Sie uns einen Code erstellen, in dem wir eine Integer-Variable deklarieren.
Wir werden dann prüfen, ob die Zahl gleich oder größer als 18 ist. Wenn dies der Fall ist, drucken wir eine Nachricht mit der Aufschrift "You are eligible to vote."
; Andernfalls geben wir eine benutzerdefinierte Fehlermeldung aus.
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)
Ausgabe:
Klicken Sie hier, um die Demo des Beispielcodes zu überprüfen.
Behandeln Sie Ausnahmen mit der Annotation @Throws
in Kotlin
Obwohl es keine überprüften Ausnahmen gibt, können wir sie dennoch in Kotlin behandeln. Wir können dies tun, indem wir die Kotlin-Ausnahmeanmerkung @Throws
verwenden.
Die Annotation @Throws
ist hilfreich für die Java-Interoperabilität. Wenn es also überprüfte Ausnahmecodes gibt, die wir in Java konvertieren müssen, können wir die Annotation @Throws
für die JVM-Maschine verwenden.
Hier ist ein Beispielcode, um dasselbe zu demonstrieren.
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()
}
}
Ausgabe:
Klicken Sie hier, um die Demo des Beispielcodes zu überprüfen.
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