Rhino Javascript: NativeTypeError

Nashorn Javascript: NativeTypeError

Nashorn Java脚本引擎(Java 8 的一部分)报告了一些异常,尤其是。关于方法绑定错误,如元数或类型不匹配,作为 NativeTypeError-实例,它没有 cause 关系来获得任何异常,因此对我来说非常不透明(我想报告为尽可能多地返回给脚本用户)。

是否有记录的方法从 NativeTypeError 实例中获取根本原因或更多信息?

回答我自己的问题:ECMAScript 标准 (ECMA-262, sec. 15.11.7) 中描述了 NativeTypeError 的语义。 NativeTypeError 的实例公开了一个 public 字段 message,其类型为 Object,但在我遇到的所有情况下很可能是 String

ECMAScript 标准只定义了 TypeError、ReferenceError 等错误对象的名称和消息属性。

Nashorn 定义了某些扩展属性,例如 "lineNumber"、"columnNumber"、"fileName"(针对引发异常的来源)和 "stack" 以访问堆栈跟踪。 "printStackTrace"、"getStackTrace" 函数也通过 Error.prototype 扩展支持。

另请参阅:

https://wiki.openjdk.java.net/display/Nashorn/Nashorn+extensions#Nashornextensions-ExtensionsofErrorobjects,Error.prototypeandErrorconstructor