错误处理与调试 管理科学与工程学科 耿方方
错误处理与调试 管理科学与工程学科 耿方方
主要内容 浏览器报告的错误 错误处理 调试技术 常见的I错误
主要内容 浏览器报告的错误 错误处理 调试技术 常见的IE错误
由于 JavaScript本身是动态语言,而且多年来一直没有固定的开发 工具,因此人们普遍认为它是一种最难于调试的编程语言。为了解决这 个问题,引入了try- catch和 throw语句以及一些错误类型,意在让开发 人员能够适当的处理错误。2008年以来,大多数浏览器都已具备一些 调试能力
由于JavaScript本身是动态语言,而且多年来一直没有固定的开发 工具,因此人们普遍认为它是一种最难于调试的编程语言。为了解决这 个问题,引入了try-catch和throw语句以及一些错误类型,意在让开发 人员能够适当的处理错误。2008年以来,大多数浏览器都已具备一些 调试能力
浏览器报告的错误 IE 每种浏览器都有 JavaScript错误报告机制,只是报告方式不同而已。 如果需要IE浏览器弹出错误报告对话框,需要设置I浏览器,具体步 骤为:选择IE浏览器菜单栏中“工具”/“ Internet选项”,选择“高 级”选项卡“显示每个脚本错误的通知”。 Internet项 常安全隐私内睿连接程序高级 从不 团为网页上的按和控件启用视觉样式 显示友好HTP错误消 在 Internet Explorer地址栏和“打开”对话框中售 以优化性 在文件资原管理器和“运行”对话框中使用直接插入 转到地址栏中的单字条目对应的 Intranet站点 还原高级设置R) 重置 Internet Explorer设置一 将 Internet Exp设重置为认设置重置() 只有在浏器处于无法使用的状态时,才应使用此设置 确定取消[应用0
浏览器报告的错误 IE 每种浏览器都有JavaScript错误报告机制,只是报告方式不同而已。 如果需要IE浏览器弹出错误报告对话框,需要设置IE浏览器,具体步 骤为:选择IE浏览器菜单栏中“工具”/“Internet选项” ,选择“高 级”选项卡“显示每个脚本错误的通知”
浏览器报告的错误 Firefox 目前,最流行的 Firefox插件 Firebug,已经成为开发人员必备的 JavaScript纠错工具
浏览器报告的错误 Firefox 目前,最流行的Firefox插件Firebug,已经成为开发人员必备的 JavaScript纠错工具
浏览器报告的错误 Chrome Chrome在默认情况下也会隐藏 JavaScript错误。所有错误都被记录到 控制台中。找到“更多工具”/“开发者工具”,见下图。 yD事件变动 →c合 O localhost8383/web2/Demo7-16htm 应用点击这里导入书签。开始 G d Elements Console Sources Network Performance > 02 :X List Sources Content scripts > 国Dem7-16htm □top King listItems elList. getElementsBy TagName( vO localhost8383 counter. innerHTML listItems v□web2 Demo7-16.html 42 addLink. addEventListen('click,,addItem Bu 43 elList addEventListener ('DOHNodeInserted Groceries 1 ( Line 42 Column 9 v Call Stack Not paused Not paused v Breakpoints > DOM Breakpoints Console What,s New o Uncaught TypeError: addLink. addEventListen is not a at Demo7-16,htmI:42 o Failed to load resource: net:: ERR EMDTY RESPONSE :8383/favicon, ico
浏览器报告的错误 Chrome Chrome在默认情况下也会隐藏JavaScript错误。所有错误都被记录到 控制台中。找到“更多工具”/“开发者工具” ,见下图
错误处理 常见的错误类型有3中,分别为“语法异常”、“运行时的异常”和 “逻辑异常”,其中“语法异常”通常是在程序员输入一些编译器无 法识别的代码后发生的;“运行时的异常”实在运行时碰到一个错误 时发生的,它与“语法异常”的区别在于它不一定是 JavaScript语言 的错误引发的异常;“逻辑异常”往往发生在程序设计时,程序没有 按照预先设计的方式运行。 JavaScript处理异常的方式通常有两种:一种方式使用 onerror事件,该 事件可以在 window对象或图像对象上触发,而另一种方式是使用 try.. catch... finally模型
错误处理 常见的错误类型有3中,分别为“语法异常” 、 “运行时的异常”和 “逻辑异常” ,其中“语法异常”通常是在程序员输入一些编译器无 法识别的代码后发生的;“运行时的异常”实在运行时碰到一个错误 时发生的,它与“语法异常”的区别在于它不一定是JavaScript语言 的错误引发的异常;“逻辑异常”往往发生在程序设计时,程序没有 按照预先设计的方式运行。 JavaScript处理异常的方式通常有两种:一种方式使用onerror事件,该 事件可以在window对象或图像对象上触发,而另一种方式是使用 try...catch...finally模型
错误处理 Ero对象 Error对象在创建后包含以下属性 属性 描述 name 异常类型 message 描述 对象 描述 fileNumber JavaScript文件名称 Error 般错误一一其他错误的基础 lineNumber错误所在代码行数 SyntaxError 语法未遵循规范 JavaScript有7种内置错误对象。 o Reference Error 尝试引用未在作用域内声明的变量 TypeError 意外的数据类型,无法进行自动转换 RangeError 数字超出了可接受的范围 URIError encodeR()、 decodeR|()以及类 似的方法会在出错时使用此类型 EvalError eva()函数会在出错时使用此类型
错误处理 Error对象 Error对象在创建后包含以下属性: JavaScript有7种内置错误对象。 对象 描述 Error 一般错误——其他错误的基础 SyntaxError 语法未遵循规范 ReferenceError 尝试引用未在作用域内声明的变量 TypeError 意外的数据类型,无法进行自动转换 RangeError 数字超出了可接受的范围 URIError encodeURI()、decodeURI()以及类 似的方法会在出错时使用此类型 EvalError eval()函数会在出错时使用此类型 属性 描述 name 异常类型 message 描述 fileNumber JavaScript文件名称 lineNumber 错误所在代码行数
错误处理 onerror事件 触发 onerror事件是最早用于处理 JavaScript异常的机制,页面出现异 常时,将触发 onerror 事件,该事件在 window对象上触发。 语法: window. onerror=function ot somestatements return true 注意:如果没有 return true语句,在弹出错误提示对话框后,浏览器 的错误报告会显示出来,为了隐藏此错误报告,函数需要返回true
错误处理 onerror事件 触发onerror事件是最早用于处理JavaScript异常的机制,页面出现异 常时,将触发onerror事件,该事件在window对象上触发。 语法: 注意:如果没有return true语句,在弹出错误提示对话框后,浏览器 的错误报告会显示出来,为了隐藏此错误报告,函数需要返回true。 window.onerror=function(){ somestatements; return true; }
错误处理 onerror事件 除了 window对象可以出发 onerror事件之外,图像对象也可以触发 onerror 事件。 语法: document images[o. onerror=function ot somestatements return true 使用 onerror事件处理异常除了可以捕捉异常之外,还可以提供如下3种信 息来确定发生异常的详细信息。 异常信息:获取异常信息; ■URL:获取发生异常的文件的绝对路径; 行号:给定文件程序中发生异堂的行号
错误处理 onerror事件 除了window对象可以出发onerror事件之外,图像对象也可以触发onerror 事件。 语法: 使用onerror事件处理异常除了可以捕捉异常之外,还可以提供如下3种信 息来确定发生异常的详细信息。 异常信息:获取异常信息; URL:获取发生异常的文件的绝对路径; 行号:给定文件程序中发生异常的行号。 document.images[0].onerror=function(){ somestatements; return true; }