栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ColdFusion没有捕获NoClassDefFoundError

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号