当代码遇到意想不到的问题时,处理这种情况的JavaScript习惯性方法是通过异常来实现的
当代码遇到一个意外的问题时,处理这种情况的JavaScript惯用方法是通过异常。
创建异常
使用throw 关键字可以创建一个异常。
其中value 可以是任何JavaScript值,包括一个字符串、一个数字或一个对象。
一旦JavaScript执行了这一行,正常的程序流程就会停止,控制权会被保留到最近的异常处理程序。
处理异常
异常处理程序是一个try/catch 语句。
在try 块中包含的代码行中产生的任何异常都会在相应的catch 块中处理。
try {
//lines of code
} catch (e) {
}
e 在这个例子中是异常值。
你可以添加多个处理程序,它们可以捕捉不同种类的错误。
finally
为了完成这个语句,JavaScript还有一个叫做finally 的语句,它包含的代码无论程序流程如何,如果异常被处理或不处理,如果有异常或没有异常,都会被执行。
try {
//lines of code
} catch (e) {
} finally {
}
你可以在没有catch 块的情况下使用finally ,作为清理你可能在try 块中打开的任何资源的方式,如文件或网络请求。
try {
//lines of code
} finally {
}
嵌套的try 块
try 块可以被嵌套,并且异常总是在最近的catch块中处理。
try {
//lines of code
try {
//other lines of code
} finally {
//other lines of code
}
} catch (e) {
}
如果在内部try ,就会在外部catch 块中处理一个异常。