js异常处理 try catch finally

try catch finally 语句用于处理代码中可能出现的错误信息

try语句允许我们定义在执行时进行错误测试的代码块
catch语句允许我们定义当 try 代码块发生错误时所执行的代码块
finally语句在try和catch之后无论有无异常都会执行

举个例子:

	<p></p>
	<script type="text/javascript">
		try {
			abc('hello world');
		} catch(err) {
			document.getElementsByTagName('p')[0].innerHTML = err.message;
		}
	</script>

在这里插入图片描述
在发生错误时,js通常会停止并抛出异常,实际上它会创建一个Error对象

Error对象带有两个属性:name 和 message
name的属性值

错误名描述
EvalError已在eval函数中发生的错误
RangeError已发生超出数字范围的错误
ReferenceError已发生非法引用
SyntaxError已发生语法错误
TypeError已发生类型错误
URIError在encodeURL中已发生的错误

ECMAScript定义了六种类型的错误:

错误名描述
ReferenceError找不到对象
TypeError使用了错误的类型或对象的方法
RangeError使用内置对象时,参数超出了范围
SyntaxError语法错误
EvalError错误的使用了eval
URIErrorURI错误

throw语句允许您创建自定义错误
举个例子:

	<!DOCTYPE html>
	<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<p>请输入1-10之间的数字</p>
		<input id="num" type="text">
		<button id="test">检测输入</button>
		<p id="message"></p>
	</body>
	</html>
	<script type="text/javascript">
		test.onclick = function () {
			message.innerHTML = '';
			x = num.value;
			try {
				if(x == ''){
					throw "为空";
				}
				if(isNaN(x)){
					throw "的不是数字";
				}
				if(x<1 || x>10){
					throw "的数字不符合条件";
				}
			}
			catch(err) {
				console.log(err);
				message.innerHTML = "您输入" + err;
			}
		}
	</script>

finally语句允许您在try和catch之后执行代码无论结果:
在上述代码中添加一部分:

	<p id="userinput"></p>
	finally {
		userinput.innerHTML = "您输入的为:" + num.value;
	}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值