Ich verstehe meist die möglichen Probleme mit geprüften Ausnahmen und warum Kotlin sie auslässt. Das Problem, auf das ich stoße, ist jedoch, dass ich keinen narrensicheren Weg finden kann, dem Anrufer deutlich zu zeigen, welche Ausnahmen eine Funktion auslösen kann.Gibt es eine einfache Möglichkeit zu sehen, welche Ausnahmen eine Kotlin-Funktion auslöst?
Ich habe unzählige Male in Python auf das Problem gestoßen, wo mein Programm nach monatelangem Programmabsturz abstürzt, weil ich nicht erkannte, dass eine Funktion aus einer Bibliothek, die ich verwende, eine bestimmte Ausnahme auslösen kann. Obwohl das Abfangen von Ausnahmen sehr problematisch sein kann, ist es schön, alle möglichen Ausnahmen zu sehen, die eine Funktion auslösen kann.
Also zurück zur Frage, gibt es eine einfache Möglichkeit zu sehen, welche Ausnahmen eine Funktion in Kotlin wirft? Was ist mit Methoden in Java geschrieben, die von Kotlin aufgerufen werden? Auch wenn nur im Werkzeugbau (intelliJ). Ich zähle nicht, es in javadoc oder kdoc zu schreiben, da der Schreiber der Funktion, die Sie verwenden, es möglicherweise weggelassen hat.
Ich nehme an, es ist unmöglich. Berücksichtigen Sie Folgendes: 'val cls = Class.forName (a); val Methode = cls.getMethod (b); method.invoke() ', wobei' a' und 'b' aus Datei gelesen oder durch Benutzereingaben bereitgestellt werden. Wie können Sie wissen, welche Ausnahmen dieser Code auslöst, bevor Sie den Code ausführen? –
Ich meine, du wirst alle Arten von Typinformationen vermissen, wenn du Reflektionen verwendest. Wären nicht die gleichen Probleme, wenn Sie Reflektion in Java verwenden würden? Ich denke, es wäre immer noch nützlich zu wissen, welche Ausnahmen in den Fällen ausgelöst werden können, in denen der Typ zum Zeitpunkt der Kompilierung bekannt ist. – zjuhasz