2
如果JNI dll抛出Java异常,并且java方法定义没有声明该异常(没有抛出子句),会发生什么?JNI中未声明的异常
代码:
private native void jniDoSomething(int someValue);
如果JNI dll抛出Java异常,并且java方法定义没有声明该异常(没有抛出子句),会发生什么?JNI中未声明的异常
代码:
private native void jniDoSomething(int someValue);
异常会被抛出反正。 刚刚检查过。
我认为这样的行为是因为throws
关键字无论如何不影响本机代码。没有能力检查本地代码是否会引发相应的异常,甚至在头文件中也没有提及异常。
Class.newInstance()方法存在类似的问题,它也允许抛出未声明的异常。 – iirekm 2010-11-29 14:45:47