Ich habe eine Funktion in Kotlin definiert:Wie deklariere ich einen Funktionsparameter, um Funktionen zu akzeptieren, die werfen?
List<Widget> getStaticWidgets() throws IOException;
ich versuchen, sie wie so zu komponieren:
fun convertExceptionToEmpty(requestFunc:() -> List<Widget>): Stream<Widget> {
try {
return requestFunc().stream()
} catch (th: Throwable) {
// Log the exception...
return Stream.empty()
}
}
ich eine Java-Methode mit dieser Signatur definiert haben
Stream<Widget> widgets = convertExceptionToEmpty(() -> getStaticWidgets())
Wenn Ich kompiliere ich bekomme diesen Fehler:
Error:(ln, col) java: unreported exception java.io.IOException; must be caught or declared to be thrown
Wie definiere ich meine Funktionsparameter, um eine Funktion zu akzeptieren, die ausgelöst wird?
Sie könnten versuchen, Ihre convertExceptionToEmpty-Funktion mit Anmerkungen zu versehen, um eine IOException auszulösen, die diesen Fehler möglicherweise umgehen könnte. – Piwo
@piwo, ich glaube nicht, dass dies helfen wird, die Ausnahme kommt von '' getStaticWidgets() '' Methode –