From: Matt Corallo Date: Tue, 22 Jun 2021 21:55:12 +0000 (+0000) Subject: Handle Java exceptions thrown in calls from C, printing and aborting X-Git-Tag: v0.0.98.3^0 X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-java;a=commitdiff_plain;h=a2e02c9f5671cd4315863bfab99ead113b5d714b Handle Java exceptions thrown in calls from C, printing and aborting Closes #23. --- diff --git a/java_strings.py b/java_strings.py index 7f82567e..c38d23b2 100644 --- a/java_strings.py +++ b/java_strings.py @@ -854,6 +854,12 @@ import java.util.Arrays; else: out_c = out_c + ", " + arg_info.arg_name out_c = out_c + ");\n" + + out_c += "\tif ((*env)->ExceptionCheck(env)) {\n" + out_c += "\t\t(*env)->ExceptionDescribe(env);\n" + out_c += "\t\t(*env)->FatalError(env, \"A Java interface method called from rust threw an exception.\");\n" + out_c += "\t}\n" + if fn_line.ret_ty_info.arg_conv is not None: out_c += "\t" + fn_line.ret_ty_info.arg_conv.replace("\n", "\n\t") + "\n" out_c += "\t" + self.deconstruct_jenv().replace("\n", "\n\t").strip() + "\n"