`
有崖生110
  • 浏览: 55133 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

js的捕捉错误及特殊字符

    博客分类:
  • js
 
阅读更多

当我们在网上冲浪时,总会看到带有 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
分享到:
评论

相关推荐

    js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码

    接下来,我会详细解析如何使用JavaScript来控制文本框只能输入中文、英文、数字以及指定的特殊符号,并提供相应的实现代码。 首先,我们需要了解输入文本框的一些基本事件,这些事件可以帮助我们捕捉用户的输入动作...

    千锋HTML5-JS阶段第三周理论考试题目02.pdf

    1. 在JavaScript中,`null`是一个特殊的值,表示空或者无,而`undefined`表示未定义。`null instanceof Object`为`false`,因为`null`不是一个对象实例;`null===undefined`为`false`,因为它们虽然在逻辑上相似,但...

    北大青鸟 S2 JavaScript 理论贯穿案例

    10. **错误处理与调试**:学习如何有效地捕捉和处理运行时错误,以及利用开发者工具进行代码调试,是提高代码质量的重要手段。 这个【理论贯穿案例】教程将通过实践案例的方式,引导学习者逐步掌握这些JavaScript的...

    vue.js表单密码强度验证代码.zip

    Vue.js是一种流行的JavaScript框架,主要用于构建用户界面,尤其在单页应用程序(SPA)开发中广泛应用。这个"vue.js表单密码强度验证代码"是专门为Vue.js项目设计的一个功能,用于增强用户在手机注册表单中输入密码...

    javascript标准手册

    - **错误处理**:介绍了 try/catch/finally 结构,用于捕捉和处理程序运行中的错误。 - **正则表达式**:提供了一种强大的文本匹配工具。 3. **新增特性**: - **严格模式**:一种特殊的执行模式,可以检测并...

    javaScript验证大全

    6. 自定义函数验证:根据具体需求编写特定的验证函数,例如验证密码强度,检查是否包含大小写字母、数字和特殊字符。 三、增强的JavaScript验证技术 1. AJAX异步验证:通过发送请求到服务器进行更复杂的验证,如...

    JavaScript王者归来part.1 总数2

     9.4 字符串与文本处理--JavaScript棋谱阅读器(一)   9.4.1 需求分析--什么是棋谱和棋谱阅读器   9.4.2 系统设计--棋谱和棋盘数据的字符串描述   9.4.3 系统实现--解析和处理棋谱   9.4.4 完整的棋谱阅读...

    javascript实例应用---密码校验类.rar

    2. **字符组合**:鼓励用户使用大小写字母、数字和特殊字符的组合,避免使用纯数字或简单的字母组合。 3. **避免常见词汇**:系统会检查密码是否包含常见的单词或短语,以防止使用易猜的密码。 4. **不包含用户名*...

    javascript调试过程中找不到哪里出错的可能原因

    特别是在JavaScript调试时,某些特殊字符可能导致代码出现无法预料的行为。例如,使用了中文字符代替标准的英文分号(;)是一个典型错误。在一些文本编辑器中,英文分号和中文分号看起来非常相似,如果不仔细观察,...

    js 上下左右键控制焦点(示例代码)

    1. JavaScript中实现键盘事件监听:文档介绍了如何使用JavaScript捕捉键盘事件,主要依赖于window的onkeydown事件,该事件会在用户按下键盘上的键时触发。 2. 利用键盘方向键控制焦点移动:通过定义特定的键盘码...

    前端开源库-bell-on-bundler-error-plugin

    "bell-on-bundler-error-plugin"作为一个前端开源库,正是针对这一需求应运而生,它专注于为开发者提供Bundler构建错误通知,通过在stderr输出中写入一个贝尔字符,帮助开发者及时捕捉并处理错误信息,从而提升开发...

    login 特效

    本文将深入探讨“login特效”这一主题,结合前端技术、JavaScript(js)以及Web开发的相关知识,帮助你理解如何创建富有吸引力的登录界面。 首先,我们要明确登录特效的核心目标:提供一个既美观又功能完善的登录...

    使用flow来规范javascript的变量类型

    在开发流程中,Flow可以捕捉到那些可能在运行时才暴露的类型错误,从而提前避免错误的发生。 Flow与TypeScript的不同之处在于,Flow并不需要从头开始学习一门全新的语言,它更像是在现有的JavaScript代码上增加类型...

    JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决

    在JavaScript中,Date对象用于处理日期和时间,通常我们可以通过传入不同的参数来创建Date对象,比如使用字符串直接创建。但是,不同的浏览器对日期字符串的解释存在差异,尤其是Safari浏览器在iOS设备上对日期格式...

    JS中判断null、undefined与NaN的方法

    在JavaScript编程中,正确地判断null、undefined和NaN是很重要的,因为这三种值在逻辑上和运算时都有一些特殊行为。本文将详细介绍如何在JS中检测这三种特殊值。 首先,null和undefined都是表示“无”的值。null是...

    ejerciciosJS:Ejercicios和JS

    【ejerciciosJS:Ejercicios和JS】是一个与JavaScript相关的练习集合,旨在帮助学习者深入理解和掌握JavaScript编程语言的基础以及进阶概念。在这个项目中,你可以找到一系列的编程练习,涵盖了从变量声明、数据类型...

    ActionScript3.0开发人员指南

    - **正则表达式基础知识**:介绍正则表达式的概念,包括基本语法和特殊字符。 - **正则表达式语法**:提供完整的正则表达式语法概览,包括量词、字符集、分组、前向引用等。 - **对字符串使用正则表达式的方法**:...

    网页计算器

    6. 错误处理:良好的编程实践中,需要考虑可能的错误情况,如用户输入非法字符或进行无效计算。这可能涉及try...catch语句来捕获和处理异常。 7. 兼容性检查:确保网页计算器在不同的浏览器(如Chrome、Firefox、...

Global site tag (gtag.js) - Google Analytics