js的try-catch用法
try catch
try { //正常执行 } catch (err) { //你感觉会出错的 错误类型 // 可能出现的意外 eg:用户自己操作失误 或者 函数少条件 不影响下面的函数执行 // 有时也会用在 比如 focus() 但可恶的ie有可能会第一次没有focus事件 再让他执行一次 // 有时一些不是bug的bug 在ie上 他要求必须加上 catch 哪怕就一个空catch }
try catch的使用场景
1. 浏览器兼容,根据捕获的浏览器的报错提示判断用户的浏览器,然后做出对应的措施
2. 做非法判断,其中最多的场合便是json.a.b.c类型的变量判断,不关心json.a或json.a.b或json.a.b.c哪步出错,只捕获错误,且程序不会报错坏掉
try catch示例
try { Utils.simpleMsg('服务器时间获取失败'); console.log('try') //不执行 } catch (err) { console.log('服务器时间获取失败'); //执行 }
<body>
<input type="button" value="View message" onclick="message()" />
<script type="text/javascript">
var txt = ""
function message() {
try {
console.log('前') //输出
adddlert("Welcome guest!")
console.log('后') //未输出
} catch (err) {
txt = "此页面存在一个错误。\n\n"
txt += "错误描述: " + err.description + "\n\n"
txt += "点击OK继续。\n\n"
alert(txt) //弹出
}
}
</script>
</body>
// 控制台正常 try { window.a.b.c !== 2; } catch (err) { console.log(err) //TypeError: Cannot read property 'b' of undefined alert(err) // 可执行 } // 控制台报红 if (window.a.b !== 2) { alert("error") // 不执行 } alert(123); // 不执行
浙公网安备 33010602011771号