From a2e02c9f5671cd4315863bfab99ead113b5d714b Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Tue, 22 Jun 2021 21:55:12 +0000 Subject: [PATCH] Handle Java exceptions thrown in calls from C, printing and aborting Closes #23. --- java_strings.py | 6 ++++++ 1 file changed, 6 insertions(+) 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" -- 2.30.2