JS错误处理与调试操作实例分析


Posted in Javascript onApril 13, 2020

本文实例讲述了JS错误处理与调试操作。分享给大家供大家参考,具体如下:

JavaScript 错误 - throw、try 和 catch

try 语句测试代码块的错误。

catch 语句处理错误。

throw 语句创建自定义错误。

finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。

JavaScript try 和 catch

try 语句允许我们定义在执行时进行错误测试的代码块。

catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

JavaScript 语句 try 和 catch 是成对出现的。

语法

try { 
  ... //异常的抛出 
} catch(e) {
   ... //异常的捕获与处理 
} finally { 
  ... //结束处理 }

例:

var txt=""; 
function message() 
{ 
  try { 
    adddlert("Welcome guest!"); 
  } catch(err) { 
    txt="本页有一个错误。\n\n"; 
    txt+="错误描述:" + err.message + "\n\n"; 
    txt+="点击确定继续。\n\n"; 
    alert(txt); 
  } 
}

finally 语句

finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。

<input id="demo" type="text">
<button type="button" οnclick="myFunction()">点我</button>
<p id="p01"></p>
<script>
function myFunction() {
 var message, x;
 message = document.getElementById("p01");
 message.innerHTML = "";
 x = document.getElementById("demo").value;
 try { 
  if(x == "") throw "值是空的";
  if(isNaN(x)) throw "值不是一个数字";
  x = Number(x);
  if(x > 10) throw "太大";
  if(x < 5) throw "太小";
 }
 catch(err) {
  message.innerHTML = "错误: " + err + ".";
 }
 finally {
  document.getElementById("demo").value = "";
 }
}
</script>

Throw 语句

throw 语句允许我们创建自定义错误。

正确的技术术语是:创建或抛出异常(exception)。

如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

语法

throw exception

异常可以是 JavaScript 字符串、数字、逻辑值或对象。

实例

本例检测输入变量的值。如果值是错误的,会抛出一个异常(错误)。catch 会捕捉到这个错误,并显示一段自定义的错误消息:

function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "值为空";
    if(isNaN(x)) throw "不是数字";
    x = Number(x);
    if(x < 5)  throw "太小";
    if(x > 10)  throw "太大";
  }
  catch(err) {
    message.innerHTML = "错误: " + err;
  }
}

JavaScript 调试工具

在程序代码中寻找错误叫做代码调试。

调试很难,但幸运的是,很多浏览器都内置了调试工具。

内置的调试工具可以开始或关闭,严重的错误信息会发送给用户。

有了调试工具,我们就可以设置断点 (代码停止执行的位置), 且可以在代码执行时检测变量。

浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。

console.log() 方法

如果浏览器支持调试,你可以使用 console.log() 方法在调试窗口上打印 JavaScript 值:

实例

a = 5;
b = 6;
c = a + b;
console.log(c);

设置断点

在调试窗口中,你可以设置 JavaScript 代码的断点。

在每个断点上,都会停止执行 JavaScript 代码,以便于我们检查 JavaScript 变量的值。

在检查完毕后,可以重新执行代码(如播放按钮)。

debugger 关键字

debugger 关键字用于停止执行 JavaScript,并调用调试函数。

这个关键字与在调试工具中设置断点的效果是一样的。

如果没有调试可用,debugger 语句将无法工作。

开启 debugger ,代码在第三行前停止执行。

实例

var x = 15 * 5; 
debugger; 
document.getElementbyId("demo").innerHTML = x;

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js对象的构造和继承实现代码
Dec 05 Javascript
javascript针对DOM的应用分析(三)
Apr 15 Javascript
Javascript的常规数组和关联数组对比小结
May 24 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
Jul 04 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
原生js实现模拟滚动条
Jun 15 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
jquery判断当前浏览器的实现代码
Nov 07 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
May 09 Javascript
vue v-for 使用问题整理小结
Aug 04 Javascript
JS正则表达式常见函数与用法小结
Apr 13 #Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 13 #Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 #Javascript
JavaScript创建表格的方法
Apr 13 #Javascript
JavaScript实现捕获鼠标坐标
Apr 12 #Javascript
jquery实现轮播图特效
Apr 12 #jQuery
用jQuery实现抽奖程序
Apr 12 #jQuery
You might like
Laravel中注册Facades的步骤详解
2016/03/16 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
javascript网页关键字高亮代码
2008/07/30 Javascript
aspx中利用js实现确认删除代码
2010/07/22 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python pygame实现方向键控制小球
2019/05/17 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
自荐信如何“自荐”
2013/10/24 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
房地产广告词大全
2014/03/19 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
财务工作失职检讨书
2014/11/21 职场文书
平安建设汇报材料
2014/12/29 职场文书
新郎答谢词
2015/01/04 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
高一数学教学反思
2016/02/18 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python