Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让浏览器在javascript失败时显示错误_Javascript_Debugging - Fatal编程技术网

让浏览器在javascript失败时显示错误

让浏览器在javascript失败时显示错误,javascript,debugging,Javascript,Debugging,我是JavaScript开发新手。有一个问题我觉得特别烦人,我希望有一个解决方案我还没有找到 问题涉及JavaScript执行失败时的反馈/可调试性。每当“普通”语言抛出一个exeption时,JavaScript执行就会停止,没有任何消息 例如,我有以下代码: var Something = function() { var self = this; self.oneMethod = function () { /*whatever*/ }; self.otherMethod =

我是JavaScript开发新手。有一个问题我觉得特别烦人,我希望有一个解决方案我还没有找到

问题涉及JavaScript执行失败时的反馈/可调试性。每当“普通”语言抛出一个exeption时,JavaScript执行就会停止,没有任何消息

例如,我有以下代码:

var Something = function() {
  var self = this;
  self.oneMethod = function () { /*whatever*/ };
  self.otherMethod = function() { /*whatever*/ };
}

var instance = new Something();
instance.oneMethod(); // fine
instance.wrongMethodCall(); // does not exist!

我希望最后一行会在某个地方出现错误。但是没有,我的浏览器控制台仍然是空的。我是否可以更改某些内容(在代码中或我的浏览器Chrome中)以使其产生错误,最好是错误发生的那一行(例如
throw
语句)?

确保没有为开发人员工具设置过滤器

使用console.log 在开发过程中,在新函数中及其周围应用
console.log('text here')
,以更好地跟踪代码的进程。您应该执行以下操作:

var Something = function() {
  console.log('Constructor for "Something" successfully called.');
  var self = this;
  self.oneMethod = function () { /*whatever*/ };
  self.otherMethod = function() { /*whatever*/ };
}

console.log('Attempting to create new object: Something . . .');
var instance = new Something();
console.log('Object created: ', instance);
console.log('Performing "oneMethod" method of object "Something" . . .');
instance.oneMethod(); // fine
console.log('Performing "wrongMethodCall" method of object "Something" . . .');
instance.wrongMethodCall(); // does not exist!

这将帮助您确定代码在哪里中断,为什么中断,还可以返回枚举对象以帮助您查看新构造的方法、属性和原型。

如果使用Mozilla Firefox,控制台是否显示错误?在Chrome中抛出一个对我来说很好的错误
UncaughtTypeError:undefined不是一个函数
Chrome和Firefox确实会在控制台上显示错误,如果出现错误时控制台已经打开。你确定代码已经执行了吗?您是否尝试了错误附近的警报或断点?是否确实选中了JS选项卡(或All选项卡),以便在Chrome控制台中实际看到JS错误?是否确实启用了JS?是的,那个窗口对我来说完全一样:(是的,这会解决问题,但这比让浏览器告诉我这件事要复杂得多。正如其他人所指出的,你的函数可能根本没有运行。你需要看看它能走多远才能确定。但是,嘿,无论如何,请投票支持我试图提供帮助。