2个简单实例让你快速理解try-catch的用法
2024-08-26 18:33:57
相信在实际项目中,你可能经常会看到类似下面的代码
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不是必须的,可选的)
最新文章
- sql数据库获取表名称和表列名
- Inno Setup 如何读写文件
- OSPF协议详解
- php删除指定目录所有文件
- echarts之字符云tooltip显示混乱问题的解决办法
- Unity的旋转-四元数,欧拉角用法简介
- GitLab 的 Developer 角色没有权限提交问题
- 使用Python画ROC曲线以及AUC值
- TortoiseGIT安装过程及问题
- Gridview点击Edit编辑未update和cancel后的问题
- **【ci框架】PHP的CI框架集成Smarty的最佳方式
- Nonlinear Transform
- USB Type-C接口完美无瑕?小心这五点
- css3---线性渐变
- Oracle误删数据文件后出现oracle initialization or shutdown in progress解决
- Android RocooFix热修复动态加载框架介绍
- JBOD磁盘磁盘簇
- 自定义switchButton
- java连接oracle数据库使用SERVICE NAME、SID以及TNSName不同写法
- 怎样编写YARN应用程序
热门文章
- python3 电脑说话
- linux服务器使用Jenkins+gradle+git打apk包,报错Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
- jenkins远程执行脚本时报Bad version number in .class file
- vue实例的生命周期
- 旅游类的APP原型模板分享——Priceline
- C/C++生成静态库动态库及语言交互
- 常用JSON接口
- Scrum冲刺阶段7
- (PMP)解题技巧和典型题目分析(0903-2班)
- 线程中的setDaemon方法