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

Вы можете в некоторой степени стилизовать элементы опции.

Используя тэг * CSS, вы можете стилизовать параметры внутри поля, которое нарисовано системой.

Пример:

#ddlProducts *
{
 border-radius:15px;
 background-color:red;
}

Это будет выглядеть так:

enter image description here [/g0]

29
задан pimvdb 22 August 2011 в 13:38
поделиться

6 ответов

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

11
ответ дан Quentin 22 August 2011 в 13:38
поделиться

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

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

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

if (isNaN(numberVariable))
{
    alert('you should enter a valid number');
}
31
ответ дан iono 22 August 2011 в 13:38
поделиться

Один сценарий, который я нахожу полезным использовать метод 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, чтобы упростить это, когда мне не нужны какие-либо «другие» сценарии и я просто хочу объект или нет:

var something;
try { something = one.two.three.four.five; }
catch { something = "default"; }
finally { doSomething(something); }
25
ответ дан parliament 22 August 2011 в 13:38
поделиться

Я нашел это в посте здесь :

Когда следует использовать try-catch?

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

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

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

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

Когда следует избегать try-catch?

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

23
ответ дан luongnv89 22 August 2011 в 13:38
поделиться

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

try {
  var w = new Widget();
}
catch (e) {
  // widget failed
}
4
ответ дан Michael Berkowski 22 August 2011 в 13:38
поделиться

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

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

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

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

1
ответ дан Thor Jacobsen 22 August 2011 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: