7、try和catch错误解决和throw错误抛出

1、try和catch错误

<!DOCTYPE html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>瓜娃子</title>

</head>
<body>
	<script>
		function abc() {
			console.log(123);
		}
		//try 代码块中,可能存在错误
		try{
			cba();
		}catch(e){
			//当try代码块中存在错误,则运行catch中的内容
			//TODO handle the exception
			console.log([e]);
			console.log(e.message);
			console.log(e.stack);
		}finally {
			//可写可不写
			//不管是否有错,都会运行这里面的代码
			console.log('不管是否有错, 都会运行这里面的代码');
		}
		console.log('cba函数后的内容');
	</script>
</body>
</html>

2、throw自定义错误

<!DOCTYPE html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>瓜娃子</title>

</head>
<body>
	<script>
		console.log('正常运行的代码');
		try {
			
			//throw主动抛出错误
			throw'这是中间抛出的错误';
			
		} catch (e) {
			console.log('这里执行处理错误');
		}
		console.log('这是错误后面的代码');
	
	</script>
</body>
</html>

3、错误简单应用

<!DOCTYPE html>
<html lang="cn">
<head>
	<meta charset="UTF-8">
	<title>瓜娃子</title>
</head>
<body>
	<input type="text" id="phone">
	<button>拨打电话</button>
	<script>
		var inputDom = document.querySelector('#phone');
		var btn = document.querySelector('button');
		btn.onclick = function () {
			var phoneNumStr = inputDom.value;
			var phoneNum = parseInt(phoneNumStr);
			console.error('这里是信息错误提示,不会中断代码');
			try {
				if (isNaN(phoneNum)) {
					var error = new Error('这个电话号码格式有问题,这是电话号码的错误');
					error.type = 'geShi_problem';
					throw error;
				} else if (phoneNumStr.length != 11) {
					var error = new Error('电话号码长度有问题,因该是11位');
					error.type = 'numLength_problem';
					throw error;
				}
			} catch (e) {
				console.log(e);
				if (e.type == 'numLength_problem') {
					var h1 = document.createElement('h1');
					h1.innerHTML = '请正确输入11位的号码';
					document.body.appendChild(h1);
				} else {
					var h1 = document.createElement('h1');
					h1.innerHTML = '请确保输入的号码是数字';
					document.body.appendChild(h1);
				}
			}
			
			console.log('执行拨打电话');
		};
	
	
	</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值