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); // 不执行

猜你喜欢

转载自www.cnblogs.com/qlongbg/p/12766435.html