Carlos Ballesteros Velasco
//} catch (e: dynamic) { // @TODO: Check wasm } catch (e: Throwable) {
catch (e: Error) {
catch (e: dynamic) {
@JsName("Error") external class JsError : JsAny { val message: String? } external interface JsResult<T : JsAny> : JsAny { val result: T? val error: JsError? } @JsFun("(block) => { try { return { result: block(), error: null }; } catch (e) { return { result: null, error: e }; } }") private external fun <T : JsAny> runCatchingJsExceptions(block: () -> T): JsResult<T> fun <T : JsAny> wrapWasmJsExceptions(block: () -> T): T { val result = runCatchingJsExceptions { block() } if (result.error != null) throw Exception(result.error!!.message) return result.result!! }
Igor Yakovlev
A modern programming language that makes developers happier.