Exception handling <;cfcatch>;不是';捕捉';错误

Exception handling <;cfcatch>;不是';捕捉';错误,exception-handling,coldfusion,Exception Handling,Coldfusion,我有一个图像处理CFC来处理上传的图像。在该方法中,我使用ImageNew()创建上载文件的新图像,然后根据需要调整其大小(以及一些其他验证以确保它是图像)。下面是一段代码: <cftry> <cfset ImageScaleToFit(#local.uploadedImage#, 72, "", "highestPerformance")> <cfimage action="write" source="#local.uploade

我有一个图像处理CFC来处理上传的图像。在该方法中,我使用
ImageNew()
创建上载文件的新图像,然后根据需要调整其大小(以及一些其他验证以确保它是图像)。下面是一段代码:

<cftry>
        <cfset ImageScaleToFit(#local.uploadedImage#, 72, "", "highestPerformance")>
        <cfimage action="write" source="#local.uploadedImage#" destination="#local.newThumbName#" overwrite="yes" >
        <cfcatch type="any">
            <cfset local.response['catcher'] = #cfcatch.Detail#>
            <cfset local.response['success'] = false>
            <cfreturn local.response>
        </cfcatch>
    </cftry>

在我将代码上传到生产服务器后,它开始抛出一个错误,因为“highestPerformance”不是生产服务器上图像压缩的可用选项

作为异常处理的备份,我让Application.cfc向我发送一封详细信息的电子邮件,同时在“try”没有发现错误的情况下屏蔽用户的错误

在整个CFC中,
捕获错误并将其发送回我的页面。在那里它将输出到控制台

我的问题是,为什么这个特定的代码块不能与
一起工作,并且错误会直接发送到My Application.CFC中的异常处理

是否存在某种内置异常处理无法处理的“错误阈值”

顺便说一句,尽管Adobe的文档中说“highPerformance”是一个可用的选项,但“highPerformance”还是有一定原因的

编辑:

这是我从Application.cfc得到的错误

无法初始化类javax.media.jai.jai

和堆栈跟踪:


ava.lang.NoClassDefFoundError:无法在coldfusion.image.image.resizeImageWithJAI(image.java:1189)在coldfusion.image.image.image.resize(image.java:1119)在coldfusion.image.image.image.scaleToFit(image.java:974)在coldfusion.image.image.scaleToFit(image.java:959)在coldfusion.runtime.CFPage.ImageScaleToFit初始化类javax.media.media.jai(CFPage.java:6189)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)在coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)在coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:418)在coldfusion.runtime.UDFMethod在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.CfJspPage.\u invokeUDF(CfJspPage.java:2471)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)在coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)在coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360)中在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:324)在coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)在coldfusion.runtime.TemplateProxy.invoke(UDFMethod:463)(TemplateProxy.java:453)在coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320)在coldfusion.filter.ComponentFilter.invoke(ComponentFilter.java:183)在coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:282)在coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)在coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)在coldfusion.filter.PathFilter.invoke(PathFilter.java:86)在coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)在coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)在coldfusion.filter.BrowserFilter.invoke在coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)在coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)在coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)在coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:138)在coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:289)中在javax.servlet.http.HttpServlet.service(HttpServlet.java:760)在org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)在javax.servlet.http.HttpServlet.service(HttpServlet.java:853)在coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)在jrun.servlet.FilterChain.doFilter(filter.java:86)上在com.seefusion.Filter.doFilter(Filter.java:49)在com.seefusion.seefusion.doFilter(seefusion.java:1494)在jrun.servlet.FilterChain.doFilter(FilterChain.java:94)在coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)在coldfusion.BootstrapFilter.doFilter(BootstrapFilter.java:46)上在jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)的jrun.servlet.FilterChain.service(FilterChain.java:101)的jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)的jrun.servlet.jruninvockain.invokeNext(jruninvockain.java:42)的jrun.servlet.JRunRequestDispatcher.Invoker(JRunRequestDispatcher.java:286)在jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)在jrun.servlet.jrpp.JRunProxyService.invokerUnable(JRunProxyService.java:203)在jrunx.scheduler.ThreadPool$DownstreamMetrics.invokerUnable(ThreadPool.java:320)在jrunx.scheduler.ThreadPool$ThreadThrottle.invokerUnable(ThreadPool.java:428)在jrunx位于jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)的jrunx.scheduler.ThreadPool$UpstreamMetrics.InvokerUnable(ThreadPool.java:266)

如果您使用的是ColdFusion 8,请确保应用了所有的修补程序和更新。CF 8在图像函数和标记方面存在许多重大问题,如果Java导致CF下面的错误,则可能无法捕获。即使您不在CF 8上,也请确保所有内容都已更新。

捕获失败,因为调用未成功o ImageScaleToFit()使JVM崩溃。