这个问题我在面试中遇到过很多次,但我仍然找不到答案。我已经用谷歌搜索过了,但没有找到确切的答案。请任何人告诉我这个问题的确切答案。
问: NodeJs的错误码是什么?
我回答了错误状态代码。但是面试官说,我不是在问状态码。请解释一下答案。提前谢谢你。
发布于 2019-02-20 20:08:16
你正面临着这个问题,因为错误代码是在节点8.x中引入的,在8之前的节点中,错误类中有错误消息,这会在非常基本的事情上导致问题,由于开发人员被迫为错误创建自定义类。参考https://nodejs.org/docs/latest-v7.x/api/errors.html#errors_class_error
稍后在节点8中,在节点8.x中将错误代码引入到由Node.js API https://nodejs.org/api/errors.html#errors_class_error抛出的所有错误对象中
节点错误代码: https://nodejs.org/dist/latest/docs/api/errors.html#errors_node_js_error_codes
为什么要使用错误代码?
在Node7之前,Node.js抛出的大多数错误都只有一条消息与之关联。如果希望代码根据错误执行特定操作,则必须将消息字符串与已知值进行比较。结果可能是这样的:
try {
// Do something
}
catch(error) {
if (error.message == 'a simpe error'){
// do something
}
else {
// do something
}
}这不是一个好的实践,因为在大多数情况下,当您从Node.js获得错误时,您的代码更有可能只是记录/显示消息,然后分支到一个通用的恢复路径。
现在您可能已经注意到,在上面的示例中使用的消息比较中有一个拼写错误。嗯,这也可能发生在Node.js代码库中,或者有可能node重新定义消息字符串。
对消息字符串的硬依赖也给国际化带来了挑战。
这应该允许按如下方式重写前面的示例:
try {
// Do something
}
catch(error) {
if (error.code == 'A_ERROR_CODE'){
// do something
}
else {
// do something
}
}使用上面的实践将确保如果消息在将来发生变化,代码不会受到影响,因为错误代码保持不变。
发布于 2019-02-20 19:54:25
是的,错误代码和状态代码是不同的东西。错误代码是当我们在节点中有任何错误代码时,比如
try{} catch(error){ error.code }这些是错误代码。有关更多详细信息,请查看medium Medium Blog上的此博客
https://stackoverflow.com/questions/54784530
复制相似问题