2016-10-08 5 views
2

いくつかのサードパーティ製ライブラリと統合するjavascriptアプリケーションを実行すると、サードパーティ製のlibが一般的なエラーのようなバグにつながる場合があります。 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined コードの品質が良くないため、 (良いコードは、オブジェクトが存在するかどうか、配列の長さ> 0などにアクセスする前にチェックする必要があります)、私が心配しているものは:js app関数がクラッシュしたとしても、上記のエラーが表示されなくなりました(たとえば、配列がそこにあった)場合、アプリケーションは再び生き残ることができません。 サードパーティのコードが失敗した(または私自身のコードが失敗した)後でも、jsアプリケーションを強制的に実行する方法はありますか?他の機能領域(そこにクラッシュしていない)に対してSURVIVEを実行するか、上記例外ディサッパーの原因? 私はこの仕事をさせるために3RDのパーティーコードに触れないことに注意してください スイッチオンにするjavascriptの一般的なメカニズムはありますか?un-catchされたエラーをスキップして通常通り実行し続けます。強制的にjsはキャッチされないエラーを無視し、引き続き動作しますか?

try{ 
    callYourLibHere(); 
} 

ブロックは、コードは、コードを行いますスローされたエラー、エラーが発生した後に実行を継続を無視できるようにする必要があります。

+1

'try {} catch {} 'を使ってライブラリを呼び出すAPIをラップします。 – Nirus

+0

はい、キャッチしようとすると特定の場所で問題が発生する可能性があります。しかし、いつか、何百もの関数呼び出しをラップするのは便利ではありません。さらに悪いことに、私はアプリで多くのライブラリを使用している、私はそのような種類のエラーが起こるか分からない。 JavaScriptをオンにする一般的なメカニズムはありますか?捕捉されていないエラーをスキップし、通常どおり実行し続けますか? – kidsit

+0

上記の質問に答えて - いいえ、キャッチされていないエラーが発生してもアプリが適切な状態になっていることを保証するものではありません。 'エラーの後。 – tebs1200

答えて

0

Nirusはtry...catchブロックでエラーが発生する可能性があり、すべてを包む、言ったように。しかし、これはこのブロック内のあらゆるエラーを隠すでしょう。私たちは、コンソールにエラーを記録することにより、この問題を解決することができます

try { 
    callYourLibHere(); 
} 
catch (e) { 
    console.log(e); 
} 

彼らはこの問題を解決するためのより良い方法だろう無視するのではなく、エラーを解決しようとしていることに注意してください。

+0

上記のように、私はこれがいくつかの仕事を延長することができますが、私は何百もの呼び出しをラップしたくないことを知っています。 JavaScriptをオンにする一般的なメカニズムはありますか?捕捉されていないエラーをスキップし、通常どおり実行し続けますか? – kidsit

関連する問題