new Error()
Error()构造函数创建一个错误对象。
语法
new Error() new Error(message) new Error(message, options) new Error(message, fileName) new Error(message, fileName, lineNumber) Error() Error(message) Error(message, options) Error(message, fileName) Error(message, fileName, lineNumber)
注意:可以使用或不使用new调用Error()。两者都创建一个新的Error实例。
Parameters
messageOptionalA human-readable description of the error.
optionsOptionalAn object that has the following properties:
causeOptionalA property indicating the specific cause of the error. When catching and re-throwing an error with a more-specific or useful error message, this property can be used to pass the original error.
fileNameOptional Non-standardThe value for the
fileNameproperty on the createdErrorobject. Defaults to the name of the file containing the code that called theError()constructor.lineNumberOptional Non-standardThe value for the
lineNumberproperty on the createdErrorobject. Defaults to the line number containing theError()constructor invocation.
Examples
Function call or new construction
When Error is used like a function, that is without new, it will return an Error object. Therefore, a mere call to Error will produce the same output that constructing an Error object via the new keyword would.
const x = Error("I was created using a function call!");
// above has the same functionality as following
const y = new Error('I was constructed via the "new" keyword!');
Rethrowing an error with a cause
捕捉错误并用新消息重新抛出有时很有用。在这种情况下,您应该将原始错误传递到新的error的构造函数中,如图所示。
try {
frameworkThatCanThrow();
} catch (err) {
throw new Error("New error message", { cause: err });
}
For a more detailed example see Error > Differentiate between similar errors.
