Я знаю, что на kotlin -мультиплатформе вы можете аннотировать функцию с помощью @Throws, чтобы сделать ее бросаемой функцией. Таким образом, преобразованный код Java / Swift имеет модификатор throws для сигнатуры функции.
Однако, если у меня есть параметр функции, который также является функцией, как мне пометить эту функцию как функцию throwable?
например:
fun foo(run : () -> Unit) {}
у вышеуказанной функции есть параметр «run», который принимает закрытие / функцию. Но этот параметр будет скомпилирован без модификатора throws, так что в Java / Swift я не могу ничего выбросить в закрытие, передаваемое этой функции.
Я попытался добавить аннотацию @Throws к функция. Если поместить его за пределы объявления функции, функция foo () будет помечена как "throws". Помещение его в круглые скобки параметра до или после двоеточия приводит к ошибке, в которой говорится, что аннотация не применима к целевому «параметру значения» / «использованию типа»
Подводя итог, я ищу что-то например:
fun foo(@Throws(Throwable::class) run : () -> Unit)
or
fun foo(run : @Throws(Throwable::class) () -> Unit)
Любые подсказки / помощь по этому вопросу очень приветствуются!