Javascript Pass

Есть ли что-то подобное Python 'pass' apos; в JavaScript?

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

try:
  # Something that throws exception
catch:
  pass
 Jason23 мая 2012 г., 22:07
 Adam Crossland23 мая 2012 г., 22:05
Пустые скобки не делают трюк? Кстати, молча употреблять исключения почти всегда неправильно.
 Aaron Hall♦02 февр. 2015 г., 23:34
По мнению Адама, у меня есть новый ответ на этот старый вопрос, который подстраивается под детальную обработку ошибок Python ниже:stackoverflow.com/a/28288015/541136

Ответы на вопрос(3)

I want to do the javascript equivalent of:

try:
  # Something that throws exception
catch:
  pass

Python не имеет try / catch. Он попытался / кроме. Так что заменаcatch сexceptмы бы получили это:

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

Пустой блок кода после перехвата эквивалентен Pythonpass.

Best Practices

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

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

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

try:
    raise TypeError
except TypeError as err:
    pass

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

Чтобы следовать той же семантике для этого в 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
  } 
}                       

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

Решение Вопроса

pass is a no-op in Python. Вам это нужно для пустых блоков, потому что

try:
    # Something that throws exception
catch:

# continue other stuff

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

try {
    // Something that throws exception
}
catch (e) {}

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



Это верно, вообще ничего

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

Ваш ответ на вопрос