标签:语句 错误 JavaScript try finally catch throw
声明
该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明
15、JavaScript错误
当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误。可能是语法错误,通常是程序员造成的编码错误或错别字。可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。可能是由于来自服务器或用户的错误输出而导致的错误。当然,也可能是由于许多其他不可预知的因素。
try、catch、finally、throw
try 语句测试代码块的错误,catch 语句处理错误。
finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的。
try catch finally 语法为
try { ... //异常的抛出 } catch(e) { ... //异常的捕获与处理 } finally { ... //结束处理 }
throw 语句创建自定义错误。
- 当错误发生时,JavaScript 引擎通常会停止,并生成一个错误消息。描述这种情况的技术术语是:JavaScript 将抛出一个错误。
1、try catch 语句
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>try catch练习实例</title>
<script>
var txt="";
function message(){
try {
adddlert("Welcome guest!");
}
catch(err) {
txt="本页有一个错误。\n\n";
txt+="错误描述:" + err.message + "\n\n";
txt+="点击确定继续。\n\n";
alert(txt);
}
}
</script>
</head>
<body>
<input type="button" value="查看消息" onclick="message()" />
</body>
</html>
2、throw finally 语句
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。
把 throw 与 try 和 catch 一起使用可以控制程序流,并生成自定义的错误消息。
语法
throw 异常
异常可以是 JavaScript 字符串、数字、逻辑值或对象。
finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。**
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>finally练习</title>
</head>
<body>
<p>不管输入是否正确,输入框都会在输入后清空。</p>
<p>请输入 5 ~ 10 之间的数字:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">确认</button>
<p id="p01"></p>
<script>
function myFunction() {
var message , x;
message = document.getElementById("p01");
message.innerHTML = "";
x = document.getElementById("demo").value;
try {
if(x == "") throw "输入值为空";
if(isNaN(x)) throw "输入值不属于数字类型";
x = Number(x);
if(x > 10) throw "输入值超出范围上限";
if(x < 5) throw "输入值超出范围下限";
}
catch(err) {
message.innerHTML = "错误: " + err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
</script>
</body>
</html>
标签:语句,错误,JavaScript,try,finally,catch,throw 来源: https://www.cnblogs.com/xypersonal/p/16212495.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。