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 相关文章推荐
prototype Element学习笔记(篇二)
Oct 26 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
纯JS实现可拖拽表单的简单实例
Sep 02 Javascript
JavaScript 控制字体大小设置的方法
Nov 23 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
AngularJS service之select下拉菜单效果
Jul 28 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
Dec 14 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 Javascript
详解微信小程序轨迹回放实现及遇到的坑
Feb 02 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安装zend opcache加速器教程
2015/03/02 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
python实现ping的方法
2015/07/06 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
Python @property使用方法解析
2019/09/17 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
关于毕业的广播稿
2014/01/10 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
法定授权委托证明书
2014/09/27 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
导游词之丽江普济寺
2019/10/22 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书