#java #jni #ffi

catch_panic_macros

catch_panic 的过程宏实现

1 个稳定版本

1.0.0 2022年7月25日

#63 in #jni

Download history 212/week @ 2024-03-13 226/week @ 2024-03-20 58/week @ 2024-03-27 69/week @ 2024-04-03 59/week @ 2024-04-10 44/week @ 2024-04-17 31/week @ 2024-04-24 16/week @ 2024-05-01 112/week @ 2024-05-08 77/week @ 2024-05-15 114/week @ 2024-05-22 33/week @ 2024-05-29 33/week @ 2024-06-05 33/week @ 2024-06-12 28/week @ 2024-06-19 16/week @ 2024-06-26

117 每月下载次数
catch_panic 中使用

MIT/Apache

6KB
95

⚾ #[catch_panic]

Crates.io Documentation License

一个用于安全 Java-Rust 互操作的帮助宏,它“捕获”Rust 的恐慌并将它们重新抛出为 Java 异常。

入门指南

catch_panic 添加到您的 Cargo.toml 依赖项中

[dependencies]
catch_panic = "1.0.0"

用法

#[catch_panic] 添加到 JNI 回调中,以便将恐慌转换为 RuntimeException

use jni::JNIEnv;
use catch_panic::catch_panic;

#[no_mangle]
#[catch_panic]
pub extern "C" fn Java_com_example_Example_panic(_env: JNIEnv) {
    panic!("everything is not fine");
}

请参阅 文档 了解宏选项和其他信息。

许可证

此存储库可在以下任一许可证下使用:

由您选择。

除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,都应按上述方式双重许可,不附加任何额外条款或条件。

此存储库中的代码是来自 HermitSocialClub/HermitRepo 的代码的衍生作品,具体为文件 ProjectTomato/tomato_macros/src/lib.rsProjectTomato/tomato/src/util.rs。这两个文件的作者都已同意将原始代码重新许可为上述许可证。

依赖项

~1.5MB
~36K SLoC