Накратко
try...catch позволява да реагираме на хвърлено изключение. Обработката трябва да води до ясно действие, а не просто да скрива проблема.
Полезно е да знаеш
Кодът в try се изпълнява нормално, докато не бъде хвърлено изключение. Тогава управлението преминава към catch, ако има такъв блок. finally е за стъпки, изпълнявани при напускане на конструкцията независимо от обичайния успех или изключение. [1]
Например опит за JSON.parse('{bad}') в try хвърля SyntaxError. В catch приложението може да покаже „Файлът не е валиден JSON“ и да прекрати импорта. Това е по-полезно от продължаване с празни данни, сякаш файлът е бил прочетен успешно.
Дръж обработката близо до операцията, чийто неуспех очакваш. Празният catch затруднява откриването на причината. Отделяй съобщението за потребителя от техническия запис в логовете и не показвай тайни в публичния интерфейс.
Не приемай, че try автоматично улавя всяка бъдеща асинхронна грешка. Мястото и моментът на изпълнение имат значение. За асинхронна операция трябва да използваш подходящата обработка на нейния резултат.
Източници
За повече подробности и проверка на информацията: