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 相关文章推荐
使用Java实现简单的server/client回显功能的方法介绍
May 03 Javascript
javascript常见操作汇总
Sep 03 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
javascript创建含数字字母的随机字符串方法总结
Aug 01 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
BootStrop前端框架入门教程详解
Dec 25 Javascript
纯js模仿windows系统日历
Feb 04 Javascript
用js制作淘宝放大镜效果
Oct 28 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
Vue.js搭建移动端购物车界面
Jun 28 Javascript
axios 处理 302 状态码的解决方法
Apr 10 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
Jul 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
我的论坛源代码(三)
2006/10/09 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
python 异常处理总结
2016/10/18 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
详解python pandas 分组统计的方法
2019/07/30 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
2014年九一八事变演讲稿
2014/09/14 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
万里长城导游词
2015/01/30 职场文书
大学体育课感想
2015/08/10 职场文书
2016新年问候语大全
2015/11/11 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
python 如何用terminal输入参数
2021/05/25 Python
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技