JavaScript提供了8个error对象,根据错误类型在try/catch表达式中抛出这些错误对象。
Error
EvalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
下面的例子解释了如何根据上面基础的错误类,创建你自己自定义的错误类。
class OutOfFuelError extends Error {}
class FlatTireError extends Error {}
自定义错误允许您根据特定的错误类型进行不同的行为,而无需使用错误消息来理解错误的类型。
try {
//some code
} catch (err) {
if (err instanceof OutOfFuelError) {
//handle error
} else if (err instanceof FlatTireError) {
//handle error
}
}
在你可以这样做之前,错误当然 必须显式抛出:
try {
const car = new Car() //imagine we have a Car object
if (!car.fuel) {
throw new OutOfFuelError('No fuel!')
}
if (car.flatTire) {
throw new FlatTireError('Flat tire!')
}
} catch (err) {
if (err instanceof OutOfFuelError) {
//handle error
} else if (err instanceof FlatTireError) {
//handle error
}
}
在错误创建期间,您还可以自定义与类相关的任何内容,如果需要,甚至可以自定义构造函数接收的参数:
class OutOfFuelError extends Error {
constructor(message) {
super(message)
this.name = "OutOfFuelError"
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。