JavaScript 中将 Error 对象转换为字符串
要将错误对象转换为字符串,请访问对象的消息属性,例如 err.message
。 message 属性是对错误发生原因的人类可读描述。
const err = new Error('Something went wrong');
console.log(err.message); // 👉️ "Something went wrong"
当使用 Error()
构造函数创建错误时,我们可以访问错误的 message 属性以获取错误发生原因的人类可读字符串。
在一些罕见的情况下,第三方包在不使用本机
Error()
构造函数或从其扩展的情况下抛出错误。
最佳实践是始终使用错误构造函数抛出错误,或者在需要添加功能时扩展它。
throw new Error('Something went wrong');
Promise.reject(new Error('Something went wrong'));
即使在拒绝承诺时,我们也可以将错误传递给 reject()
方法。
如果你必须处理来自第三方包的错误的奇怪实现,你应该检查错误值是否是一个对象并且具有消息属性以避免访问不存在的属性。
const err = null;
if (typeof err === 'object' && err !== null && 'message' in err) {
const message = err.message;
console.log(message);
}
我们的 if 条件使用逻辑与 &&
运算符,因此要运行 if 块,必须满足所有条件。
我们首先检查 err 变量是否存储了具有对象类型的值,因为错误具有对象类型。
然后我们检查变量是否不等于 null。 不幸的是,如果您检查 null 的类型 - console.log(typeof null)
,我们将得到一个“object”值,因此我们必须确保该值不为 null。
我们检查的最后一件事是该对象包含
message
属性。
然后我们知道我们可以安全地访问对象的消息属性。
如果这不起作用,作为最后的手段,您可以尝试访问错误对象的 toString()
方法。
一些第三方包抛出实现 toString()
方法的错误对象。
const err = null;
if (typeof err === 'object' && err !== null && 'toString' in err) {
const message = err.toString();
console.log(message);
}
如果这也不起作用,我们必须使用 console.log
打印错误对象并查看它实现的属性和方法。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法