节点 - 如何捕获split()错误?

时间:2017-09-19 17:32:12

标签: javascript node.js try-catch unhandled

我对NodeJs有疑问。从6.6开始就说无法取得未处理的承诺。

为了避免这种情况,我需要抓住错误,但是......如果我知道了,我该怎么办呢?

args[1] = args[1].split('!')[1].split('>')[0]

我尝试添加.catch(err => console.log(错误))但似乎没有任何改变。

提前致谢! :)

3 个答案:

答案 0 :(得分:0)

.catch(err => console.log(err))用于从promises中捕获错误。请改用标准格式:

try{
    args[1] = args[1].split('!')[1].split('>')[0]
}
catch(err){
    console.log(err)
}

答案 1 :(得分:0)

或多或少这不是很有希望。它只是一个简单的javascript语句,可以直接捕获如下: 尝试在整个

上使用try catch
try{
   args[1] = args[1].split('!')[1].split('>')[0]
}catch(e){
console.log(e); 
// Most possible error would be TypeError: Cannot read property 'split' of undefined
at <anonymous>:1:23
}

答案 2 :(得分:0)

当第一次拆分不产生第二个索引时,可以通过替换字符串来避免错误。

args[1] = (args[1].split('!')[1] || "").split('>')[0];

这假设args[1]肯定存在。如果不确定,您可以进行类似的替换。

args[1] = ((args[1] || "").split('!')[1] || "").split('>')[0];

最后,您可以提供默认值,以防其中任何部分无法生成有用的内容。

args[1] = ((args[1] || "").split('!')[1] || "").split('>')[0] || "DEFAULT";