在更改了代码中许多地方使用的Session变量的语义后,我留下了一个回归,我在页面加载时得到“模板助手中的异常”错误。
所以我搞砸了,我正在使用该变量的地方,我没有修改代码来处理新的语义。但我找不到......
回溯没有给我任何线索,因为它只有来自meteor javascript文件的条目,没有关于我的应用程序文件的信息:
Exception in template helper: Error: $in needs an array
at Error (native)
at Object.ELEMENT_OPERATORS.$in.compileElementSelector (http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1887:15)
at http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1569:19
at Function._.each._.forEach (http://jesper-lab:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:164:22)
at operatorBranchedMatcher (http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1549:5)
at compileValueSelector (http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1453:12)
at http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1432:9
at Function._.each._.forEach (http://jesper-lab:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:164:22)
at compileDocumentSelector (http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1415:5)
at _.extend._compileSelector (http://jesper-lab:3000/packages/minimongo.js?e8806aa7782b729b2517ebc0cd10b321667f1427:1392:12)
有什么方法可以找出WHICH模板帮助器抛出此异常? (除了在所有这些中设置断点(数百......))
答案 0 :(得分:1)
我不确定这是最好的方法,但我所做的是使用通用的try_catch函数:
@try_catch = (f) ->
return (args) ->
try
f(args)
catch e
console.log e
并将其包装在我想要调试的每个模板助手周围。