HTML语法命名错误的是,JavaScript错误

try 语句让你测试代码块的错误.

catch 语句让你处理错误。

throw 语句让你创建自定义错误.

finally 语句允许执行代码, 在 try 和 catch 后, 不管结果如何.

错误会发生!

当执行JavaScript代码,可能产生不同的错误.

错误可能是程序员编码的错误,由于错误的输入,和其他不可预见的事情.

在这个例子中我们故意产生一个错误:

try {

adddlert("Welcome guest!");

}

catch(err) {

document.getElementById("demo").innerHTML = err.message;

}

JavaScript 捕获 adddlert 错误, 并且执行catch代码去处理它.

JavaScript try 和 catch

try 语句让你定义要在执行时测试错误的代码块.

catch 语句让你定义要执行的代码块,如果在try块中发生错误.

JavaScript try 和 catch 成对出现:

try {

Block of code to try

}

catch(err) {

Block of code to handle errors

}

JavaScript 抛出错误

当错误发生时,JavaScript通常会停止并生成错误信息.

这个术语是:JavaScript将抛出一个异常(抛出一个错误).

JavaScript会创建一个有两个属性的错误对象:名称和信息。

throw 语句

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

技术上你可以抛出异常(抛出错误).

异常可以是JavaScript字符串,数字,布尔值或对象:

throw "Too big"; // throw a text

throw 500; // throw a number

如果try和catch一起使用并抛出,则可以控制程序流并生成自定义错误消息.

输入验证的例子

此示例检查输入。如果值是错误的,则抛出异常(错误).

异常(错误)由catch语句捕获,并显示自定义错误消息:

Please input a number between 5 and 10:

Test Input

function myFunction() {

var message, x;

message = document.getElementById("message");

message.innerHTML = "";

x = document.getElementById("demo").value;

try {

if(x == "") throw "empty";

if(isNaN(x)) throw "not a number";

x = Number(x);

if(x < 5) throw "too low";

if(x > 10) throw "too high";

}

catch(err) {

message.innerHTML = "Input is " + err;

}

}

HTML验证

上面的代码就是一个例子.

现代的浏览器通常会结合使用JavaScript和内置的HTML验证,使用预定义的验证规则的HTML属性定义:

您可以在本教程的后面章节阅读更多关于表单验证的信息.

finally 语句

finally 句允许您在try和catch之后执行代码,不管结果如何:

try {

Block of code to try

}

catch(err) {

Block of code to handle errors

}

finally {

Block of code to be executed regardless of the try / catch result

}

function myFunction() {

var message, x;

message = document.getElementById("message");

message.innerHTML = "";

x = document.getElementById("demo").value;

try {

if(x == "") throw "is empty";

if(isNaN(x)) throw "is not a number";

x = Number(x);

if(x > 10) throw "is too high";

if(x < 5) throw "is too low";

}

catch(err) {

message.innerHTML = "Error: " + err + ".";

}

finally {

document.getElementById("demo").value = "";

}

}

Error 对象

JavaScript有一个内置的对象的错误,提供了错误的信息时发生错误.

error 对象提供两个有用的属性:名称和消息.

Error 对象属性

属性描述

name设置或返回错误名

message设置或返回错误信息(字符串)

Error 名称值

六个不同的值可以通过错误名称属性返回:

错误名称描述

EvalError在eval()函数时发生了一个错误

RangeError发生超出范围错误的数字

ReferenceError发生非法引用

SyntaxError发生语法错误

TypeError发生类型错误

URIError在encodeURI()中发生一个错误

下面描述了六个不同的值.

Eval 错误

EvalError 表示eval()函数发生错误.

新版本的JavaScript不抛出任何EvalError。而是使用SyntaxError代替

范围错误

RangeError 如果使用了超出非法值范围的数字,则发生错误.

例如:不能将数字的有效位数设置为 500.

var num = 1;

try {

num.toPrecision(500); // A number cannot have 500 significant digits

}

catch(err) {

document.getElementById("demo").innerHTML = err.name;

}

引用错误

ReferenceError 如果使用(引用)尚未声明的变量,则引发:

var x;

try {

x = y + 1; // y cannot be referenced (used)

}

catch(err) {

document.getElementById("demo").innerHTML = err.name;

}

语法错误

SyntaxError 如果代码有语法错误,则引发

try {

eval("alert('Hello)"); // Missing ' will produce an error

}

catch(err) {

document.getElementById("demo").innerHTML = err.name;

}

类型错误

TypeError 如果使用超出预期类型范围的值,则引发:

var num = 1;

try {

num.toUpperCase(); // You cannot convert a number to upper case

}

catch(err) {

document.getElementById("demo").innerHTML = err.name;

}

URI 错误

URIError 如果你在一个URI函数中使用非法字符:

try {

decodeURI("%%%"); // You cannot URI decode these percent signs

}

catch(err) {

document.getElementById("demo").innerHTML = err.name;

}

非标准错误对象属性

Mozilla和微软的一些非标准误差定义对象的属性:

fileName (Mozilla)

lineNumber (Mozilla)

columnNumber (Mozilla)

stack (Mozilla)

description (Microsoft)

number (Microsoft)

不要在公共网站中使用这些属性。他们不会在所有浏览器中工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值