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 相关文章推荐
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 Javascript
JS正则中的RegExp对象对象
Nov 07 Javascript
js借助ActiveXObject实现创建文件
Sep 29 Javascript
javascript表单控件实例讲解
Sep 13 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
Jan 01 Javascript
vue组件之Alert的实现代码
Oct 17 Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
Node.js API详解之 readline模块用法详解
May 22 Javascript
JavaScript实现矩形块大小任意缩放
Aug 25 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
php下将XML转换为数组
2010/01/01 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
常用python编程模板汇总
2016/02/12 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
学习Python爬虫的几点建议
2020/08/05 Python
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
大学生英语演讲稿
2014/04/24 职场文书
我爱读书演讲稿
2014/05/07 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS