Какие поддерживаемые браузеры Условные выходы-исключения?Условные предложения catch - поддержка браузеров
На MDN try...catch вы можете найти Conditional catch clauses как Нестандартная функция.
try {
myroutine(); // may throw three exceptions
} catch (e if e instanceof TypeError) {
// statements to handle TypeError exceptions
} catch (e if e instanceof RangeError) {
// statements to handle RangeError exceptions
} catch (e if e instanceof EvalError) {
// statements to handle EvalError exceptions
} catch (e) {
// statements to handle any unspecified exceptions
logMyErrors(e); // pass exception object to error handler
}
Примечание: Эта функция не является частью спецификации ECMAScript.
Поддерживается любыми современными браузерами? Консоль
Google Chrome вернулась Uncaught SyntaxError: Unexpected token if
Или Шоудом я использую:
try {
myroutine(); // may throw three exceptions
} catch (e) {
if(e instanceof TypeError) {
// statements to handle TypeError exceptions
}
else if(e instanceof RangeError) {
// statements to handle RangeError exceptions
}
else if(e instanceof EvalError) {
// statements to handle EvalError exceptions
}
else {
// statements to handle any unspecified exceptions
logMyErrors(e); // pass exception object to error handler
}
}
MDN - это ссылка на JavaScript. И JavaScript, я имел в виду реализацию Mozilla и надмножество ECMAScript. Таким образом, вы найдете эту функциональность в Firefox. Насколько я знаю, ни один другой главный браузер не использует реализацию Mozilla. * (Ну, есть IceWeasel, но это в основном бесплатная версия Firefox AFAIK.) * –
Почему бы просто не попробовать в браузерах, которые вас волнуют? – Pointy
Используйте второй способ, это так же читаемо и не намного больше кода. Реальный вопрос: почему ваша функция бросает EvalErrors? Пахнет. – sbking