异常处理

异常处理

异常捕获

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提供了以下几个内置的异常类

名称构造函数参数返回值说明
TypeErrormessage:stringError当变量或参数不是预期类型时抛出
SyntaxErrormessage:stringError当尝试解析语法上不合法的代码时抛出
ReferenceErrormessage:stringError当使用未定义的变量时抛出
RangeErrormessage:stringError当一个数值超出其允许的范围时抛出
Errormessage:string,name?:stringError通用的错误类,是上述所有错误类的父类

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")
更新时间 7/16/2024, 3:50:33 PM