An exception (including ``++reject++``) thrown by a promise will not be caught by a nesting ``++try++`` block, due to the asynchronous nature of execution. Instead, use ``++catch++`` method of ``++Promise++`` or wrap it inside ``++await++`` expression. This rule reports ``++try-catch++`` statements containing nothing else but call(s) to a function returning a ``++Promise++`` (thus it's less likely that ``++catch++`` is intended to catch something else than ``++Promise++`` rejection). == Noncompliant Code Example ---- function runPromise() { return Promise.reject("rejection reason"); } function foo() { try { // Noncompliant, the catch clause of the 'try' will not be executed for the code inside promise runPromise(); } catch (e) { console.log("Failed to run promise", e); } } ---- == Compliant Solution ---- function foo() { runPromise().catch(e => console.log("Failed to run promise", e)); } // or async function foo() { try { await runPromise(); } catch (e) { console.log("Failed to run promise", e); } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] endif::env-github,rspecator-view[]