ColdFusion没有捕获NoClassDefFoundError

ColdFusion没有捕获NoClassDefFoundError,第1张

ColdFusion没有捕获NoClassDefFoundError

现在,我已经喝了更多的咖啡,我认为cfcatch无法捕获

NoClassDefFoundError
。根据文档,它仅处理Exceptions:

异常 是会干扰ColdFusion页面中的正常指令流的事件,例如数据库 *** 作失败,缺少包含文件以及开发人员指定的事件。

NoClassDefFoundError
是一个错误

错误表明严重的问题,合理的应用程序不应尝试抓住

听起来好像

cfcatch
只是设计来处理正常的“可恢复”问题。一旦获得签证,实际上没什么可做的
NoClassDefFoundError
。这是一个严重的错误,您无法克服它(在正常情况下)。您最多只能显示一条错误消息并退出。

Application.onError
似乎处理未捕获的错误,例如
NoClassDefFoundError
,以及异常。因此,我认为您能做的最好的事情就是实施
onError
并显示错误页面。

    <!---- test pre --->    <cfset myJavaObject = createObject("java", "path.to.MyClass") />    <cfset myJavaObject.myMethod() />    <!---- Application.cfc --->    <cfcomponent>         .... settings ...         <cffunction name="onError" returnType="void">   <cfargument name="Exception" required="true" />   <cfargument name="EventName" type="string" required="true" />   <h1>onError Test</h1>  <cfdump var="#Exception#" />         </cffunction>    </cfcomponent>    // test class    public class MyClass {        public void myMethod() { throw new NoClassDefFoundError ("Testing...");        }    }

更新资料

Any类型包括Java对象类型java.lang.Exception的所有错误。它不包含java.lang.Throwable错误。要捕获Throwable错误,请在cfcatch标记类型属性中指定java.lang.Throwable

尽管有文档说明,但是

Throwable
在我的任何测试(或您的测试)中均无法进行捕获。这强烈表明行为或文档中存在错误。无论哪种方式,它都 不能
像宣传的 那样
工作,因此如上所述,我知道的唯一替代方法是使用常规错误处理程序。如果由于某些原因必须坚持使用Application.cfm文件,请尝试使用
<cferrortype="exception"...>


(荒谬)测试案例:

<cftry>   <cfset myJavaObject = createObject("java", "path.to.MyClass")>   <cfset myJavaObject.myMethod()>   <cfcatch type="java.lang.NoClassDefFoundError">      CAUGHT java.lang.NoClassDefFoundError   </cfcatch>   <cfcatch type="java.lang.linkageError">      CAUGHT java.lang.linkageError   </cfcatch>   <cfcatch type="java.lang.Error">      CAUGHT java.lang.Error   </cfcatch>   <cfcatch type="java.lang.Throwable">      CAUGHT java.lang.Throwable    </cfcatch>   <cfcatch type="any">      CAUGHT ANY   </cfcatch>   <cfcatch>      CAUGHT   </cfcatch></cftry>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5178563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存