龙空技术网

JavaScript 错误处理方法

寒笛过霜天 61

前言:

当前各位老铁们对“js代码运行不出来的问题”大致比较看重,我们都想要知道一些“js代码运行不出来的问题”的相关文章。那么小编在网上网罗了一些有关“js代码运行不出来的问题””的相关内容,希望兄弟们能喜欢,我们一起来了解一下吧!

用alert()和document.write()方法监视变量值

alert()在弹出对话框显示变量值得同时,会停止代码的继续运行,直到用户单击"确定"按钮,而document.write()则在输出值之后继续运行代码。

for(var i=0;i<aColors.length;i++)if(aColors[i].indexOf(oInputField.value)==0)alert(aColor[i]);aResult.push(aColors[i]);

为了很好地检测加入到数组aResult里的值,往往在if语句中适当地嵌入alert()语句,

如果加入的值很多,则可以选用document.write()方法,避免反复单击"确定"按钮

for(var i=0;i<aColors.length;i++)if(aColors[i].indexOf(oInputField.value)==0)document.write(aColors[i]);aResult.push(aColors[i]);

用onerror事件找到错误

理解onerror事件

<html><head><title>onerror</title><script language="javascript">window.onerror = function(){alert("出错啦!");}</script></head><body onload="nonExistent()"></body></html>

用onerror事件找到错误

<html><head><title>onerror</title><script language="javascript">window.onerror = function(){alert("出错啦!");return true; //屏蔽系统事件}</script></head><body onload="nonExistent()"></body></html>

用onerror事件的参数确认错误的性质

<html><head><title>onerror</title><script language="javascript">window.onerror = function(sMessage, sUrl, sLine){alert("出错啦:\n" + sMessage + "\nUrl: " + sUrl + "\n行号: " + sLine);return true; //屏蔽系统事件}</script></head><body onload="nonExistent()"></body></html>

用try...catch语句找到错误

该语句首先运行try里面的代码,如果发现错误则跳转到运行catch()里面的代码,如果有finally,则无论是否出错最后都运行其中的代码。

try{//代码}catch([exception]){//如果try中代码有错,则运行}[finally{//最后运行,无论是否出错}]

用try...catch语句找到错误

实例1:

<html><head><title>try...catch</title><script language="javascript">try{alert("this is an example");alert(fresheggs);} catch(exception){var sError = "";for(var i in exception)sError += i + ":" + exception[i] + "\n";alert(sError);}</script></head><body></body></html>

实例2:

<script type="text/javascript">//使用异常//(并不是全部代码都放到try里边, 而是有可能产生异常的代码才放入)var week = "Monday";var date = "2015/6/7";try{console.log(week);console.log(date);console.log(weather);//ReferenceError: weather is not definedvar arr = new 20(); //TypeError: 20 is not a constructor//var tom = new eval(); //TypeError: eval is not a constructorconsole.log(111);console.log(222);}catch(ex){//ex是一个对象,用于获得具体错误信息//ex.message 获得具体错误信息console.log(ex.message);//weather is not defined}finally{//无论是否有异常错误,此处代码都给执行console.log('we are studying javascript');}</script>

throw 声明的作用是创建 exception(异常或错误)。

throw(exception)

exception 可以是字符串、整数、逻辑值或者对象。

注意:使用小写字母编写 throw。使用大写字母会出错!

下面的实例的作用是测定变量 x 的值。如果 x 的值大于 10 或者小于 0,错误就会被抛出 (throw)。

这个错误被 catch 的参数捕获后,就会显示出自定义的出错信息。

<html><body><script type="text/javascript">var x=prompt("Enter a number between 0 and 10:","")try{if(x>10)throw "Err1"else if(x<0)throw "Err2"} catch(er){if(er=="Err1")alert("Error! The value is too high")if(er == "Err2")alert("Error! The value is too low")}</script></body></html>

使用调试器

Firefox错误控制器调试

开发者-调试器

用venkman调试

venkman是一款针对Mozilla的脚本调试器

下载地址:

注意:最新版已经安装venkman调试器

F12:启动调试器

用Microsoft Script Debugger调试

安装Microsoft Script Debugger插件

Internet选项-高级-禁用脚本测试(Internet Explorer和其他)

下载地址:

F12:启动调试器

Chome浏览器

更多工具-JavaScript控制台

标签: #js代码运行不出来的问题 #firefox调试debug技巧 #火狐安装插件报错文件损坏 #微信公众号javascript异常咋办 #js点击事件失效但不报错