当我们在网上冲浪时,总会看到带有 runtime 错误的 Javascript 警告框,同时会询问我们“是否进行 debug?”。像这样的错误信息或许对开发人员有用,对用户则未必。当错误发生时,他们往往会选择离开这个站点。那么我们如何来捕捉这些错误呢?
有两种在网页中捕获错误的方法:
- 使用 try...catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)
- 使用 onerror 事件。这是用于捕获错误的老式方法。(Netscape 3 以后的版本可用)
注意:chrome、opera 和 safari 浏览器不支持 onerror 事件。
Try...Catch 语句
try...catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。
<script type="text/javascript">
var txt=""
try
{
adlert("Welcome guest!")
}
catch(err)//这个是可以变的,只是要注意下面的变量跟着变就好了。
{
txt="此页面存在一个错误。\n"
txt+="错误描述: " + err.description + "\n"
txt+="点击OK继续。\n"
alert(txt)
if(!confirm(txt))
{
document.location.href="http://www.baidu.com/"
}
}
</script>
alert出来的效果:
confirm出来的效果:
confirm让用户来选择在发生错误时点击确定按钮来继续浏览网页,还是点击取消按钮来回到首页。如果 confirm 方法的返回值为 false,代码会把用户重定向到其他的页面。如果 confirm 方法的返回值为 true,那么代码什么也不会做。
throw 声明的作用是创建 exception(异常或错误)。
你可以把这个声明与 try...catch 声明配合使用,以达到控制程序流并产生精确错误消息的目的。
<html>
<body>
<script type="text/javascript">
var x=prompt("Enter a number between 0 and 10:","")
try
{
if(x>10)
throw "Err1"
else if(x<0)
throw "Err2"
}
catch(er)
{
if(er=="Err1")
alert("Error! The value is too high")
if(er == "Err2")
alert("Error! The value is too low")
}
</script>
</body>
</html>
使用 onerror 事件是一种老式的标准的在网页中捕获 Javascript 错误的方法。
只要页面中出现脚本错误,就会产生 onerror 事件。
如果需要利用 onerror 事件,就必须创建一个处理错误的函数。你可以把这个函数叫作 onerror 事件处理器 (onerror event handler)。这个事件处理器使用三个参数来调用:msg(错误消息)、url(发生错误的页面的 url)、line(发生错误的代码行)。
语法:
onerror=handleErr
function handleErr(msg,url,l)
{
//Handle the error here
return true or false
}
浏览器是否显示标准的错误消息,取决于 onerror 的返回值。如果返回值为 false,则在控制台 (JavaScript console) 中显示错误消息。反之则不会。
实例:
下面的例子展示如何使用 onerror 事件来捕获错误:
<html>
<head>
<script type="text/javascript">
onerror=handleErr
var txt=""
function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n"
txt+="Error: " + msg + "\n"
txt+="URL: " + url + "\n"
txt+="Line: " + l + "\n\n"
txt+="Click OK to continue.\n\n"
alert(txt)
return true
}
function message()
{
adddlert("Welcome guest!")
}
</script>
</head>
<body>
<input type="button" value="View message" onclick="message()" />
</body>
</html>
下面的表格列出了其余的特殊字符,这些特殊字符都可以使用反斜杠来添加到文本字符串中:
代码
输出
\' |
单引号 |
\" |
双引号 |
\& |
和号 |
\\ |
反斜杠 |
\n |
换行符 |
\r |
回车符 |
\t |
制表符 |
\b |
退格符 |
\f |
换页符 |
- 大小: 10.6 KB
- 大小: 11.4 KB
分享到:
相关推荐
接下来,我会详细解析如何使用JavaScript来控制文本框只能输入中文、英文、数字以及指定的特殊符号,并提供相应的实现代码。 首先,我们需要了解输入文本框的一些基本事件,这些事件可以帮助我们捕捉用户的输入动作...
除此之外,教程还涵盖了错误捕捉机制,特殊字符的处理,编码规范,对象(Object)的创建和使用,字符串(String)、日期(Date)、数组(Array)、布尔(Boolean)和数学(Math)对象的API,以及HTML DOM(Document Object ...
1. 在JavaScript中,`null`是一个特殊的值,表示空或者无,而`undefined`表示未定义。`null instanceof Object`为`false`,因为`null`不是一个对象实例;`null===undefined`为`false`,因为它们虽然在逻辑上相似,但...
10. **错误处理与调试**:学习如何有效地捕捉和处理运行时错误,以及利用开发者工具进行代码调试,是提高代码质量的重要手段。 这个【理论贯穿案例】教程将通过实践案例的方式,引导学习者逐步掌握这些JavaScript的...
Vue.js是一种流行的JavaScript框架,主要用于构建用户界面,尤其在单页应用程序(SPA)开发中广泛应用。这个"vue.js表单密码强度验证代码"是专门为Vue.js项目设计的一个功能,用于增强用户在手机注册表单中输入密码...
- **错误处理**:介绍了 try/catch/finally 结构,用于捕捉和处理程序运行中的错误。 - **正则表达式**:提供了一种强大的文本匹配工具。 3. **新增特性**: - **严格模式**:一种特殊的执行模式,可以检测并...
6. 自定义函数验证:根据具体需求编写特定的验证函数,例如验证密码强度,检查是否包含大小写字母、数字和特殊字符。 三、增强的JavaScript验证技术 1. AJAX异步验证:通过发送请求到服务器进行更复杂的验证,如...
9.4 字符串与文本处理--JavaScript棋谱阅读器(一) 9.4.1 需求分析--什么是棋谱和棋谱阅读器 9.4.2 系统设计--棋谱和棋盘数据的字符串描述 9.4.3 系统实现--解析和处理棋谱 9.4.4 完整的棋谱阅读...
2. **字符组合**:鼓励用户使用大小写字母、数字和特殊字符的组合,避免使用纯数字或简单的字母组合。 3. **避免常见词汇**:系统会检查密码是否包含常见的单词或短语,以防止使用易猜的密码。 4. **不包含用户名*...
特别是在JavaScript调试时,某些特殊字符可能导致代码出现无法预料的行为。例如,使用了中文字符代替标准的英文分号(;)是一个典型错误。在一些文本编辑器中,英文分号和中文分号看起来非常相似,如果不仔细观察,...
1. JavaScript中实现键盘事件监听:文档介绍了如何使用JavaScript捕捉键盘事件,主要依赖于window的onkeydown事件,该事件会在用户按下键盘上的键时触发。 2. 利用键盘方向键控制焦点移动:通过定义特定的键盘码...
"bell-on-bundler-error-plugin"作为一个前端开源库,正是针对这一需求应运而生,它专注于为开发者提供Bundler构建错误通知,通过在stderr输出中写入一个贝尔字符,帮助开发者及时捕捉并处理错误信息,从而提升开发...
本文将深入探讨“login特效”这一主题,结合前端技术、JavaScript(js)以及Web开发的相关知识,帮助你理解如何创建富有吸引力的登录界面。 首先,我们要明确登录特效的核心目标:提供一个既美观又功能完善的登录...
在开发流程中,Flow可以捕捉到那些可能在运行时才暴露的类型错误,从而提前避免错误的发生。 Flow与TypeScript的不同之处在于,Flow并不需要从头开始学习一门全新的语言,它更像是在现有的JavaScript代码上增加类型...
在JavaScript中,Date对象用于处理日期和时间,通常我们可以通过传入不同的参数来创建Date对象,比如使用字符串直接创建。但是,不同的浏览器对日期字符串的解释存在差异,尤其是Safari浏览器在iOS设备上对日期格式...
在JavaScript编程中,正确地判断null、undefined和NaN是很重要的,因为这三种值在逻辑上和运算时都有一些特殊行为。本文将详细介绍如何在JS中检测这三种特殊值。 首先,null和undefined都是表示“无”的值。null是...
【ejerciciosJS:Ejercicios和JS】是一个与JavaScript相关的练习集合,旨在帮助学习者深入理解和掌握JavaScript编程语言的基础以及进阶概念。在这个项目中,你可以找到一系列的编程练习,涵盖了从变量声明、数据类型...
- **正则表达式基础知识**:介绍正则表达式的概念,包括基本语法和特殊字符。 - **正则表达式语法**:提供完整的正则表达式语法概览,包括量词、字符集、分组、前向引用等。 - **对字符串使用正则表达式的方法**:...
6. 错误处理:良好的编程实践中,需要考虑可能的错误情况,如用户输入非法字符或进行无效计算。这可能涉及try...catch语句来捕获和处理异常。 7. 兼容性检查:确保网页计算器在不同的浏览器(如Chrome、Firefox、...