У вас неправильное представление о том, как работают Promises.
Когда вы вызываете Promise, это асинхронный вызов, основной поток не знает, когда он завершится sh. По этой причине вы должны использовать «then ()», чтобы код выполнялся всякий раз, когда заканчивается обещание.
По той же причине вы не можете отловить ошибку, которую не знаете, когда это произойдет. Итак, этот блок try-catch на самом деле ничего не делает.
Что делать? Ну, если вам нужно знать, как заканчивается это обещание, вы можете использовать оператор await
.
Кроме того, у вас может быть глобальный прослушиватель ошибок (зависит от используемой платформы и языка), но это Другой вопрос.