JavaScript错误处理

JavaScript 错误 - Throw、Try 和 Catch


JavaScript 测试和捕捉


try 语句允许我们定义在执行时进行错误测试的代码块。

catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

JavaScript 语句 trycatch 是成对出现的。

语法


try
{
//在这里运行代码
}
catch(err)
{
//在这里处理错误
}

实例

在下面的例子中,我们故意在 try 块的代码中写了一个错字。

catch 块会捕捉到 try 块中的错误,并执行代码来处理它。


<!DOCTYPE html>
<html>
<head>
<script>
var txt="";
function message()
{
try
{
adddlert("Welcome guest!");
}
catch(err)
{
txt="There was an error on this page.\n\n";
txt+="Error description: " + err.message + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
}
}
</script>
</head>

<body>
<input type="button" value="View message" onclick="message()">
</body>

</html>

Throw 语句


throw 语句允许我们创建自定义错误。

正确的技术术语是:创建或抛出异常(exception)。

如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

语法

throw exception

异常可以是 JavaScript 字符串、数字、逻辑值或对象。

实例

本例检测输入变量的值。如果值是错误的,会抛出一个异常(错误)。catch 会捕捉到这个错误,并显示一段自定义的错误消息:


<script>
function myFunction()
{
try
{
var x=document.getElementById("demo").value;
if(x=="") throw "empty";
if(isNaN(x)) throw "not a number";
if(x>10) throw "too high";
if(x<5) throw "too low";
}
catch(err)
{
var y=document.getElementById("mess");
y.innerHTML="Error: " + err + ".";
}
}
</script>

<h1>My First JavaScript</h1>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="mess"></p>

javascript Error 对象 错误处理


javascript常见error对象处理,错误代码集合

Error对象

Property:

  name: 错误名
  number: 错误号

  description: 描述

  message: 错误信息,多同description
 FF Only 属性

  fileName: 错误发生的文件

  stack: 错误发生时的调用堆栈

Constructor:
  Error(){

    this(0,"")}
  Error(description){

    this(0,description)}

  Error(number,description){
    ....}


构造函数参数不带name,是因为Error对象的name对应于它的来源:

  EvalError: 错误发生在eval()中

  SyntaxError: 语法错误,错误发生在eval()中,因为其它点发生SyntaxError会无法通过解释器

  RangeError: 数值超出范围

  ReferenceError: 引用不可用

  TypeError: 变量类型不是预期的

  URIError: 错误发生在encodeURI()或decodeURI()中

抛出Error:

  throw new Error(0,"Error Demo");

  new Error可省略:

    throw("Error Demo");

捕获Error:

  try catch finally语句:
    try{

      ..可能错误的语句..}

    catch(e){

       ..错误发生后的处理..}

    finally{

       ..完成后执行的语句块..}

   finally不是必须的

   如果嵌套,两个catch不要使用同一个参数名,以免覆盖

   传入的参数是一个Error对象,可以从中得到错误信息

   FF支持一个try多个catch,因为Js为弱类型不推荐使用

window.onerror错误捕获:

    window.onerror=function(Msg,Url,Num){}

    onerror事件会传给回调函数3个默认参数

      Msg: 错误信息

      Url: 发生错误的文件的Url

      Num: 错误发生位置的行号

    window.onerror还能处理SyntaxError,比try catch更强大。

    但是onerror属于bom,所以各浏览器厂家对其的支持都不同。

    如IE发生error时,正常的代码会继续执行;在FF中,代码将结束;Safari只支持Image的onerror事件处理。


    Image.onerror

    onerror还可以应用于其它HTMLElement上,最常见的是<img />元素

    <img src="sample.jpg" onerror="javascript:alert(‘图像载入错误‘);" />

处理Error:
  判断错误类型:

    catch(e){

      if(e.name=="RangeError")

        alert("错误提示");}

    或
    catch(e){

      if(e instanceof TypeError)

        alert("错误提示");}

jQuery 事件 - error() 方法

定义和用法


当元素遇到错误(没有正确载入)时,发生 error 事件。

error() 方法触发 error 事件,或规定当发生 error 事件时运行的函数。

提示:该方法是 bind(‘error‘, handler) 的简写方式。

触发 error 事件


语法

$(selector).error()

将函数绑定到 error 事件


语法

$(selector).error(function)

实例


<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("img").error(function(){
$("img").replaceWith("<p><b>图片未加载!</b></p>");
});
});
</script>
</head>
<body>
<img src="errorimg.gif" />
<p>如果上面的图像没有正确地加载,会被替换为一段 "图片未加载" 的文本。</p>
</body>
</html>

JavaScript错误处理

时间: 2024-11-06 15:43:34

JavaScript错误处理的相关文章

JavaScript错误/异常处理

JavaScript Try...Catch 语句 介绍:JavaScript中的try...carch语句的作用和C#中的try...catch语句的作用一样, 都是捕获并处理异常. 语法: try { //在此运行代码 } catch(err) { //在此处理错误 } 例子: <html> <head> <script type="text/javascript"> var txt="" function message()

第一百二十三节,JavaScript错误处理与调试

JavaScript错误处理与调试 学习要点: 1.浏览器错误报告 2.错误处理 3.错误事件 4.错误处理策略 5.调试技术 6.调试工具 JavaScript在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑.ECMAScript第3版为了解决这个问题引入了try...catch和throw语句以及一些错误类型,让开发人员更加适时的处理错误. 一.浏览器错误报告 随着浏览器的不断升级,JavaScript代码的调试能力也逐渐变强.IE.Firefox.Safari.

javascript错误:对象不支持此属性或方法

javascript错误:对象不支持此属性或方法 出现如上错误的原因主要有以下两种: 1.方法对应的JS函数未定义 2.属性所用的id名字跟函数名相同也会报此错误,id或函数名改个地方即可.

JavaScript之基础-12 JavaScript 错误处理

一.JavaScript 错误处理 错误处理概述 - 错误,指程序中的非正常运行状态,在其它编程语言中称为"异常"或"错误".解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息 - ECMAScript定义了六种类型的错误(EvalError,RangeError,REferenceError,SyntaxError,TypeError,URIError).除此之外,还可以使用Error构造方法创建自定义的Error对象,并使用throw语句

javascript错误-try,catch

javascript错误try catch throwtry 测试代码块的错误.catch 处理错误.throw 创建或抛出异常,异常可以是javascript字符串.数字.逻辑值或对象.finally 在try语句完成后执行的语句,无论是否抛出或捕获异常. function msg() { try{ var x = "aaa"; if(x == "") { throw "为空!"; } if(isNaN(x)) { throw "不是

Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则

众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后,开发中对页面的更改会同步到所有已连接的浏览器中.Browser Link按钮就是位于浏览器调试按钮右边的一个类似“刷新”的按钮: 最近在开发apworks.org的新版本(之前因为供应商的问题导致网站全部瘫痪,我也一直没来得及修复,索性自己重新打造一个,顺便也验证Apworks框架的可用性),发现

JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch

try      语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生,当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误:可能是语法错误,通常是程序员造成的编码错误或错别字.可能是拼写错误或语言中缺少的功能(可能由于浏览器差异),可能是由于来自服务器或用户的错误输出而导致的错误.当然,也可能是由于许多其他不可预知的因素.当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息.描述这种情

1000多个项目中的十大JavaScript错误以及如何避免

通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个.下面会向大家介绍这些错误发生的原因以及如何防止. 对于这些错误发生的次数,我们是通过收集的数据统计得出的.Rollbar 会收集每个项目中的所有错误,并总结每个错误发生的次数,然后通过各个错误的特征进行分组. 下图是发生次数最多的10大 JavaScript 错误: 下面开始深入探讨每个错误发生的情况,以便确定导致错误发生的原因以及如何避免. 1.   Uncaught TypeError: Cann

JavaScript 错误异常

JavaScript 错误异常 错误异常语句 try 语句测试代码块中的错误 catch 语句处理错误 throw 语句允许自定义错误 finally 语句在错误异常语句后,必须执行的代码块 try { adddlert("Hello") ; } catch (err) { document.getElementById("demo").innerHTML = err.message ; } // 结果 : adddlert is not defined JavaS