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使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
Feb 15 Javascript
Bootstrap中的Panel和Table全面解析
Jun 13 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
Sep 26 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
详解vue的数据binding绑定原理
Apr 12 Javascript
jQuery操作css样式
May 15 jQuery
node.js的http.createServer过程深入解析
Jun 06 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
Vue微信公众号网页分享的示例代码
May 28 Javascript
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
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中创建并处理图象
2006/10/09 PHP
PHP调用Webservice实例代码
2011/07/29 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
php表单敏感字符过滤类
2014/12/08 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
python识别验证码图片实例详解
2020/02/17 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
加拿大服装和鞋类零售商:Mark’s
2021/01/04 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
法制宣传月活动方案
2014/05/11 职场文书
西安导游词
2015/02/12 职场文书
法人代表资格证明书
2015/06/18 职场文书
大学开学感言
2015/08/01 职场文书
Python使用MapReduce进行简单的销售统计
2022/04/22 Python