异常处理的作用
<script>
//有try在功能 自动捕获异常
// 尝试运行try中的代码块,如果不通过就执行catch
// 不影响下面代码执行
//错误内容后的代码不执行
try {
console.log(a);
var c = 222;
console.log(c);
// 并不会打印c
} catch (error) {
console.error(error);
}
var b = 111;
// 如果没有try就不会打印b,因为a出错了,就停止了
console.log(b)
</script>
如何手动抛出异常
<script>
//手动抛出异常 throw
function fn(aaa) {
if (aaa == undefined) {
// throw new Error("无参数")
throw {
//
erron: 123,
error: '无参数'
}
}
}
try {
fn()
} catch (error) {
console.log(error)
}
</script>
错误的传导机制
<script>
//异常的传递机制
// 当在被调用函数内部出现异常的时候,异常
// 会一层一层向上抛出,类似于冒泡
// 从最底层传递到最顶层
function f1() {
fn2()
}
function fn2() {
fn3()
}
function fn3() {
throw new Error('我是错误')
}
try {
f1()
} catch (error) {
console.error(error);
}
</script>
异常的完整语句
<script>
//try 必定执行的 catch看是否有异常 throw 手动抛出异常
// finally无论对错都触发
try {
var a = 1
console.log(a)
} catch (error) {
console.log(error)
} finally { //必定触发,无论对错
console.log("最终结果")
}
// 实例
try {
//数据库链接 出现问题
// 把异常抛出
} catch (error) {
//捕获问题
} finally { //一般前端用不到
//把数据库连接释放
}
</script>