异常处理
异常处理
异常捕获
try...catch
结构用于异常处理,能够捕捉在try
代码块中发生的错误,并在catch
块中进行处理。这是一种有效的错误处理机制,可以提高程序的健壮性和用户体验。
try-catch-finally
try...catch
语法的基本结构如下:
try {
// 尝试执行的代码
} catch (error) {
// 处理错误的代码
} finally {
// 总会执行的代码
console.log('操作完成');
}
try
块:包含可能抛出错误的代码。catch
块:当try块中的代码抛出错误时,执行此代码块,error
对象包含了错误的详细信息。finally
块,该块中的代码无论是否发生错误都会执行。
抛出异常
throw
语句用于主动抛出一个异常。当程序运行过程中遇到你认为不应该继续执行下去的情况时,可以通过抛出异常来中断当前函数或脚本的执行,并可以选择性地提供错误信息或自定义的错误对象。这对于错误处理和程序的健壮性非常重要。
throw
function throwError() {
throw new Error('This is an error');
}
try {
throwError();
} catch (error) {
console.log(error.message); // 输出:This is an error
}
内置异常类
vino
提供了以下几个内置的异常类
名称 | 构造函数参数 | 返回值 | 说明 |
---|---|---|---|
TypeError | message:string | Error | 当变量或参数不是预期类型时抛出 |
SyntaxError | message:string | Error | 当尝试解析语法上不合法的代码时抛出 |
ReferenceError | message:string | Error | 当使用未定义的变量时抛出 |
RangeError | message:string | Error | 当一个数值超出其允许的范围时抛出 |
Error | message:string,name?:string | Error | 通用的错误类,是上述所有错误类的父类 |
Error
Error
类是 vino
中用于表示错误的内置类,它也是所有其他错误类的父类。它可以在代码执行过程中创建并抛出,用于指示错误发生的原因。
属性与方法
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
name | 属性 | string | 错误名称,用来表示错误类别 | |
message | 属性 | string | 错误描述 | |
stack | 属性 | string | 错误堆栈信息 |
创建Error对象
Error 对象可以通过 new 关键字创建
- 通过子类创建
let err1 = new TypeError("错误信息")
let err2 = new SyntaxError("错误信息")
let err3 = new ReferenceError("错误信息")
let err4 = new RangeError("错误信息")
提示
因为内置的4个Error子类是vino
运行时用来表示错误类型的,因此不建议开发者创建这些类型的类,以免造成混乱。
- 创建用户自定义Error
开发者可以通过Error
类来创建用户自定义类型的错误对象。
语法
new Error(message:string,name?:string)
属性
- message: 错误信息
- name: (可选)错误名称,默认:Error
//创建一个
let err1 = new Error("错误信息","CustomError")