使用ColdFusion 9.01时,我们偶尔会发现一个问题,即在CFC函数中可能发生错误,以及当我们尝试添加writeDump(foo)时;并且中止;调用错误的调用ColdFusion不尊重这些调用。
示例:
private void function index(Event)
{
var rc = Event.getCollection();
var prc = Event.getCollection(private=true);
/** NOT HONORED! **/
writeDump(var=rc);
abort;
prc.JSON = {};
prc.JSON.show = variables.APIProxy.call(
handler = 'shows'
,action = 'read'
,event = arguments.Event
/** THE ERROR IS OCCURING HERE **/
,params = { language=lcase(rc.language.getLanguage_Medium()), show=rc.show_name }
);
prc.JSON.showEpisodes = variables.APIProxy.call(
handler = 'episodes'
,action = 'index'
,event = arguments.Event
,params = { language=lcase(rc.language.getLanguage_Medium()), show=rc.show_name, detail=true }
);
prc.JSON.products = variables.APIProxy.call(
handler = 'products'
,action = 'index'
,event = arguments.Event
,params = { language=lcase(rc.language.getLanguage_Medium()), detail=true }
);
Event.addAssets(
'model/product.js
,model/show.js
,collection/product_mobile.js
,collection/show_mobile.js
,view/product_mobile.js
,view/productList.js
,view/show_mobile.js
,view/showList.js
,model/episode.js
,view/episode_mobile.js
,view/episodeList.js
,collection/episode_mobile.js
,collection/product_mobile.js
,mobile/episodeObject.css
,mobile/show.js
,mobile/show.css
,mobile/category.css
');
Event.setLayout('layout.mobile');
Event.setView("show/index_mobile");
return;
}
我相信我们已经成功地消除了缓存。我很好奇是否有其他人遇到过这个。
谢谢。
亚伦
答案 0 :(得分:3)
我猜这个错误是一个 parse 错误,而不是一个真正的运行时错误,因此在函数实际执行之前它会被抛出。它实际上并没有跳过你的abort
,它只是无法解析(或执行)整个事情。
我不确定你为什么会在那里得到一个解析错误,但我知道处理结构文字的CF代码有点不稳定。
答案 1 :(得分:2)
问题在于参数调用函数中声明的结构文字。
答案 2 :(得分:0)
我会在这里说出你的问题可能与这个错误有关:
http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=86960
您的应用中是否有任何内容在onRequestEnd()方法中执行?
告诉我们发生问题时究竟发生了什么和/或输出会有所帮助。