Подтвердить что ты не робот

Когда вы должны использовать try/catch в JavaScript?

Когда я разрабатываю нормальное веб-приложение с JavaScript, инструкция try/catch обычно не требуется. Там нет проверено исключение, File IO или соединение с базой данных в JavaScript.

Оператор try/catch полезен в JavaScript? Когда я могу его использовать?

4b9b3361

Ответ 1

Используйте его, когда выполняемый код может вызвать исключение. Помните, что вы можете throw свои собственные ошибки - большая часть материала try…catch, который я использую, предназначена для обнаружения моих собственных исключений.

Ответ 2

try...catch блоки обычно поощряются к использованию меньше, и это не зависит от используемого вами языка.

Основной причиной этого является стоимость блоков catch. Другая причина заключается в том, что когда вы завершаете несколько операторов одним блоком try...catch, в блоке catch вы не можете быть уверены в том, что является главной проблемой.

Лучше использовать такие методы, как validation или if...else, чтобы уменьшить вероятность возникновения ошибки (ошибки). Например, если вы хотите работать с числом, которое берется у пользователя, вместо использования try...catch вы можете использовать:

if (isNaN(numberVariable))
{
    alert('you should enter a valid number');
}

Ответ 3

Я нашел это из сообщения здесь:

Когда вы должны использовать try-catch?

Оператор try-catch следует использовать в любое время, когда вы хотите скрыть ошибки от пользователя, или в любое время, когда вы хотите создать пользовательские ошибки для своих пользователей. Если вы еще не поняли это, когда вы выполняете инструкцию try-catch, обычный механизм обработки ошибок браузеров будет отключен.

Вероятно, вы можете увидеть возможные преимущества при создании больших приложений. Отладка всех возможных обстоятельств в любом потоке приложений часто занимает много времени, и многие возможности могут быть непреднамеренно упущены. Конечно, при правильном тестировании ошибок ни одна область не должна быть упущена. Но выражение try-catch работает как хороший резерв в областях вашего кода, который может выйти из строя при необычных обстоятельствах, которые не были предусмотрены во время разработки.

Другим преимуществом, предоставляемым приложением try-catch, является то, что он скрывает чрезмерно технические сообщения об ошибках от пользователей, которые вообще не понимают их.

Лучшее время для использования try-catch - это части вашего кода, в которых вы подозреваете, что произойдут ошибки, которые не под вашим контролем, по каким-либо причинам.

Когда следует избегать попытки улова?

Вы не должны использовать оператор try-catch, если знаете, что произойдет ошибка, потому что в этом случае вы захотите отладить проблему, а не замаскировать ее. Оператор try-catch должен выполняться только в разделах кода, в которых вы подозреваете, что могут произойти ошибки, и из-за огромного количества возможных обстоятельств вы не можете полностью проверить, произойдет ли ошибка или когда это будет сделано. В последнем случае было бы целесообразно использовать try-catch.

Ответ 4

Один из сценариев, которые я нахожу try/catch/finally, полезен с глубоко вложенными объектами, где нулевой может появиться на любом уровне. например, рассмотрим следующее:

var something = one.two.three.four.five;

для выполнения этого "получения" со 100% -ной безопасностью нужно было бы написать немного подробного кода:

if(one && one.two && one.two.three && one.two.three.four)
   something = one.two.three.four.five;

Теперь представьте, что имена переменных реалистичны и длиннее, и вы быстро получаете очень уродливый код if.

Я стараюсь использовать try/catch/finally, чтобы упростить это, когда меня не интересуют сценарии "else" и просто хотят объект или нет:

var something;
try { something = one.two.three.four.five; }
catch { something = "default"; }
finally { doSomething(something); }

Ответ 5

Внешние библиотеки и виджеты Javascript часто используют исключения для ошибок при создании. Обычно необходимо:

try {
  var w = new Widget();
}
catch (e) {
  // widget failed
}

Ответ 6

Ну, я лично (неправильно?) его использую, когда я пишу код, который я не уверен, будет выполняться правильно, но пользователю не нужно знать об ошибке.

Кроме того, я использовал его для некоторых пользовательских элементов управления, для которых вы можете определить свойство action в своей разметке HTML, и javascript попытается выполнить это действие, например:

try{
     window['method'](args);
}catch(e){
     try{
         window['optionalExceptionHandler'](e, args);
     }catch(e){ return; }
}

(Мне нравится думать лучше, чем eval() xD)