2017-09-19 3 views
0

NodeJについて質問があります。 6.6以来、未処理の約束を取り出すことはできません。私は、どのように私が進むべきだとなった場合ノード - split()エラーをキャッチする方法?

はそれを避けるために、私は...私は、エラーをキャッチする必要がある、赤、しかし?

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

私は.catch(ERR =>はconsole.log(ERR))を追加しようとしましたが、何も変化していないようにみえます。

ありがとうございます! :)

+0

投稿したコードは非同期ではなく、約束を返しません。 – lilezek

+0

あなたのコードスニペット – Rowland

+0

を更新するコードは 'Promise'sを入れ子に含まれていますか? – guest271314

答えて

0

.catch(ERR =>にconsole.log(ERR))約束からエラーを検出するために使用されます。代わりに標準形式を使用してください:

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

ありがとうValera、それはうまく動作します:) – Izio

0

多かれ少なかれこれは有望ではありません。それは以下のように直接取り込むことができ、単純なJavaScriptの声明です: 代わりに引くと、あなたが最初の分割が何の2番目のインデックスを生成しないときに文字列を代入してエラーを回避することができ、全体

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 
} 
+0

これはかなりうまくいきます。ありがとうございます。 – Izio

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"; 
+0

これはスマートで、スパンキーを共有してくれてありがとう – Izio

+0

ようこそ。 – spanky

関連する問題