zoukankan      html  css  js  c++  java
  • jni下的捕获异常失败

    在JNI下只能捕捉Throwable类的异常,如果捕捉Exception类的异常是进不到catch方法里的。

    try {
        logger.info("dll文件读取成功");
    } catch (Throwable e) { // JNI只能捕捉到Throwable异常
        e.printStackTrace();
        logger.error("dll文件读取失败");
    }

    原因猜测可能是因为JNI下出现异常是委托给Error类(用来处理程序运行环境方面的异常,比如,虚拟机错误、装载错误和连接错误,这类异常主要是和硬件有关的,而不是由程序本身抛出的),而Throwable类是Error类的父类(Java语言要求java程序中(无论是谁写的代码)所有抛出(throw)的异常都必须是从Throwable派生而来),也就能往下兼容而捕捉到异常。

    因此如果发现在JNI下捕获异常失败,只要将捕捉的Exception类换成Throwable类(或Error类)即可。

    "世事无常,但我依然爱你。"

    你要去做一个大人,不要回头,不要难过。
  • 相关阅读:
    vue工作篇
    idea快捷键
    idea怎么随时随地调整字体大小
    idea配置maven
    idea启动加速
    idea配置tomcat
    idea设置哪个浏览器打开
    jsonArray和jsonObject的理解
    多文件上传保存到本地服务器
    并发编程
  • 原文地址:https://www.cnblogs.com/yanggb/p/14779509.html
Copyright © 2011-2022 走看看