2013-05-31 61 views
5

什么是修复的一般解决方案Uncaught ReferenceError修复未捕获的参考错误

我正在创建一个函数来确保调试代码投入生产。但可能会出现某些变量不存在但调试代码仍然存在的情况。在这种情况下,它不应该停止js。

function debug(data, type){ 
    if(type == 'alert' && mode !== 'production'){ 
     alert(data); 
    } 
    else if(type == 'halt' && mode !== 'production'){ 
     debugger; 
    } 
    else{ 
     console.debug(data); 
    } 
} 

debug(xyz) //xyz doesn't exists 
+8

'debug(typeof xyz ===“undefined”?undefined:xyz);''也许? – Ian

+0

你可以使用macr ...哦,等等。 –

+3

为什么你想在生产中运行你的调试代码? –

回答

2

您应该避免在生产环境中运行调试代码。

最好是有一个构建过程将其删除,但包装调试调用的简单标志也起作用。

window.DEBUG = true; 

//... 

if (DEBUG) { 
    debug(xyz) //xyz doesn't exist... and it won't matter when DEBUG === false 
} 

这将比全面测试未声明的变量更清洁。

毕竟,部分调试是发现意外访问未声明的变量。所以在调试时,我们应该想看到那些ReferenceErrors,以便我们可以修复它们。

0
try{ 
if(Debug){ 
    debug(data,code) 
} 
} 
catch{ 
// swallow or do whatever you want 
} 
相关问题