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 相关文章推荐
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
Jan 03 Javascript
jquery 显示*天*时*分*秒实现时间计时器
May 07 Javascript
jQuery与Ajax以及序列化
Feb 01 Javascript
Angular的事件和表单详解
Dec 26 Javascript
基于jQuery实现滚动刷新效果
Jan 09 Javascript
jQuery对table表格进行增删改查
Dec 22 Javascript
JS实现针对给定时间的倒计时功能示例
Apr 11 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
微信小程序保持session会话的方法
Mar 20 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
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
PHP中SESSION过期设置
2021/03/09 PHP
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
python3.7 的新特性详解
2019/07/25 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
思想品德课教学反思
2014/02/10 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
应届大学生自荐书
2014/06/17 职场文书
环保志愿者活动总结
2014/06/27 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2015年征兵工作总结
2015/07/23 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis