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

Прохождение javascript

Есть ли что-то в строках python 'pass' в javascript?

Я хочу сделать эквивалент javascript:

try:
  # Something that throws exception
catch:
  pass
4b9b3361

Ответ 2

Есть, и вот он:




Правильно, ничего нет:

try {
    somethingThatThrowsAnException();
} catch (e) {
}

Ответ 3

Я хочу сделать эквивалент javascript:

try:
  # Something that throws exception
catch:
  pass

У Python нет try/catch. У него есть попытка/исключение. Поэтому, заменив catch на except, мы получим следующее:

try {
  //     throw any exception
} catch(err) {}  

Пустой блок кода после catch эквивалентен Python pass.

Лучшие практики

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

На самом деле считается лучшей практикой только для обнаружения определенных типов ошибок.

Итак, лучшей версией для Python будет то, что вы хотите только поймать исключения, которые вы готовы обработать, и избегать скрывать ошибки:

try:
    raise TypeError
except TypeError as err:
    pass

Вероятно, вы должны подклассифицировать соответствующий тип ошибки, стандартный Javascript не имеет очень богатой иерархии исключений. Я выбрал TypeError, потому что он имеет такую ​​же правописание и аналогичную семантику для Python TypeError.

Чтобы следовать той же семантике для этого в Javascript, мы сначала должны улавливать все ошибки, и поэтому нам нужен поток управления, который настраивается для что. Поэтому нам нужно определить, является ли ошибка не типом ошибки, которую мы хотим pass с условием if. Отсутствие другого потока управления - это то, что заставляет замолчать TypeError. И с этим кодом теоретически все другие типы ошибок должны появляться на поверхности и быть фиксированными или, по крайней мере, идентифицироваться для дополнительной обработки ошибок:

try {                                 // try:
  throw TypeError()                   //     raise ValueError
} catch(err) {                        // # this code block same behavior as
  if (!(err instanceof TypeError)) {  // except ValueError as err:
    throw err                         //     pass
  } 
}                       

Комментарии приветствуются!