我目前正在使用safari(混合iOS 6应用程序)进行调试。 try catch中错误的行号显示错误的行。报告的行号指的是方法而不是错误行。
为了说明,我将提供一个例子
1. var myFunc = function(){
2.
3. try{
4. //do some work
5. var i = undefined;
6. }
7. catch(e){
8. console.log(e.line);
9. }
10. //do some more work
11.
12. }
第5行将触发错误,未定义变量undefined。当应用程序运行时,报告的行错误将是第1行。因此它指向您发生错误的函数,而不是实际的行号。
有趣的是,当我打开调试器并在第8行放置断点时,它开始打印第5行的正确行。即使删除断点但保持调试器打开也会打印正确的行。关闭远程调试后,它将继续打印方法级别行号。
这可能是iOS徒步旅行问题,但非常奇怪。有什么想法吗?