相信在实际项目中,你可能经常会看到类似下面的代码

try {
// 尝试执行代码块
}
catch(err) {
// 捕获错误的代码块
}
finally {
// 结果如何都会执行的代码块
}

  简单来说上面的代码是用于处理代码中可能出现的错误信息

  try{} 里的代码表示要执行的代码

  catch{} 用于捕获 try{} 里代码执行时报的错误信息

  finally{} 不管怎样都会执行的代码

  下面我会列出一个实例,有时候文字描述不太直观,不便于理解,把相关代码敲一边,试着去理解,或许原先不明白的地方就迎刃而解了

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body> <button id="btn">点我</button>
<p id="message"></p> <script>
var btn = document.getElementById("btn");
btn.addEventListener("click", clickMe); function clickMe() {
var y = document.getElementById("message"); try{
show();
}
catch(err){
y.innerHTML = "错误:" + err;
}
} // function show() {
// alert(1);
// }
</script>
</body>
</html>

  注:上面实例如下图,点击按钮以后执行 clickMe() 方法里的 show()方法,因为没有定义该方法,所以报错,提示该方法没有定义

  

  下面在通过一个实例介绍当 catch{} 捕获到错误信息,通过 throw 创建自定义消息的用法

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
</head> <body>
<p>请输入 5 和 10 之间的一个数:</p> <input type="text" id="data" value="" /> <button id="btn">检查输入</button> <p id="message"></p> <script>
var btn = document.getElementById("btn");
btn.addEventListener("click", myFunction); function myFunction() {
var data = document.getElementById("data").value;
var message = document.getElementById("message");
message.innerHTML = ""; try {
if (data === 0) {
throw "值不能为0";
} else if (isNaN(data)) {
throw "值不能为非数字";
} else if (data < 5) {
throw "值不能小于5";
} else if (data > 10) {
throw "值不能大于10";
} else {
throw "你输入的值没有问题";
}
}
catch(err) {
message.innerHTML = "输入的值:" + err;
}
}
</script>
</body> </html>

  补充:

  ①:try 和 catch  (必须一起使用)

  ②:try 和 catch 和 throw  (如果要创建自定义消息,就需要一起使用)

  ③:try 和 catch 和 finally (finally不是必须的,可选的)

  

最新文章

  1. sql数据库获取表名称和表列名
  2. Inno Setup 如何读写文件
  3. OSPF协议详解
  4. php删除指定目录所有文件
  5. echarts之字符云tooltip显示混乱问题的解决办法
  6. Unity的旋转-四元数,欧拉角用法简介
  7. GitLab 的 Developer 角色没有权限提交问题
  8. 使用Python画ROC曲线以及AUC值
  9. TortoiseGIT安装过程及问题
  10. Gridview点击Edit编辑未update和cancel后的问题
  11. **【ci框架】PHP的CI框架集成Smarty的最佳方式
  12. Nonlinear Transform
  13. USB Type-C接口完美无瑕?小心这五点
  14. css3---线性渐变
  15. Oracle误删数据文件后出现oracle initialization or shutdown in progress解决
  16. Android RocooFix热修复动态加载框架介绍
  17. JBOD磁盘磁盘簇
  18. 自定义switchButton
  19. java连接oracle数据库使用SERVICE NAME、SID以及TNSName不同写法
  20. 怎样编写YARN应用程序

热门文章

  1. python3 电脑说话
  2. linux服务器使用Jenkins+gradle+git打apk包,报错Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
  3. jenkins远程执行脚本时报Bad version number in .class file
  4. vue实例的生命周期
  5. 旅游类的APP原型模板分享——Priceline
  6. C/C++生成静态库动态库及语言交互
  7. 常用JSON接口
  8. Scrum冲刺阶段7
  9. (PMP)解题技巧和典型题目分析(0903-2班)
  10. 线程中的setDaemon方法