Ich arbeite an einem Java Projekt und innerhalb dieses Projektes habe ich meinen ersten Versuch mit Kotlin gemacht. Ich habe angefangen, einige Klassen mit dem JavaToKoltin-Konverter, der in Intellij Idea zur Verfügung gestellt wird, nach Kotlin zu konvertieren. Unter anderem werden meine benutzerdefinierten Ausnahmen jetzt zu Kotlin konvertiert. Aber damit funktioniert die Ausnahmebehandlung nicht mehr korrekt.
Wenn ich eine meiner benutzerdefinierten Ausnahmen (z. B. MyCustomKotlinException.kt
) innerhalb des Java-Codes ausspreche, wird die Ausnahme nicht abgefangen (siehe Code unten).
So kann mir jemand erklären warum die Ausnahme nicht zu fangen ist. MyCustomKotlinException
erbt von Kotlins RuntimeException
, was nur ein Alias für java.lang.RuntimeException
ist.
Aktualisierung:
Ich habe den Wurfteil in 2 Reihen geteilt (Instanzerstellung und Wurf) und festgestellt, dass das Problem nicht das Werfen ist. Der try-Block bleibt nach der Instanzerstellung bestehen. Ist irgendetwas falsch mit meiner Instanz-Erstellung dieser Kotlin-Klasse?
Update2:
Ich habe einen zweiten catch-Block mit Throwable
hinzugefügt und das folgende Throwable wird abgefangen.
Update3:
Der Titel wurde geändert, um den Fehler zu korrigieren, und das Problem beim Hinzufügen aller Projektdateien zu jar wurde behoben (siehe Antwort unten).
Das Hinzufügen der Kotlin-Laufzeit-Lib zu Gradle funktioniert nicht für mich.
Sie müssen Ihr Projekt mit Kotlin konfigurieren. Also im Android Studio:
klicken Sie auf Extras = & gt; Kotlin = & gt; Konfigurieren Sie Kotlin im Projekt
Dann im Dialog überprüfen: Alle Module enthalten Kotlin-Dateien
und wählen Sie die Version
drücke ok
Fertig.
Hatte das gleiche Problem, kompiliere mein Projekt mit Ant in der Konsole. Ich habe kotlin-stdlib.jar in den Klassenpfad eingegeben und das Problem ist weg.
Ich werde sagen, dass Sie versuchen, Kotlin-Code ohne die kotlin-runtime
-Bibliothek auszuführen
Überprüfen Sie, welches System Sie verwenden, und fügen Sie die erforderliche JAR-Datei hinzu. Sie können überprüfen, ob dies Ihr Problem ist, indem Sie Ihr Projekt in eine .jar
-Datei packen und es mit der Laufzeitumgebung ausführen Bibliothek
Tags und Links java exception-handling exception kotlin