Пользовательский тип исключительной ситуации

Я могу определить пользовательские типы для пользовательских исключений в JavaScript? Если так, как я сделал бы это?

216
задан Alexander Abakumov 26 September 2019 в 11:43
поделиться

0 ответов

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

// define exceptions "classes" 
function NotNumberException() {}
function NotPositiveNumberException() {}

// try some code
try {
    // some function/code that can throw
    if (isNaN(value))
        throw new NotNumberException();
    else
    if (value < 0)
        throw new NotPositiveNumberException();
}
catch (e) {
    if (e instanceof NotNumberException) {
        alert("not a number");
    }
    else
    if (e instanceof NotPositiveNumberException) {
        alert("not a positive number");
    }
}

существует другой синтаксис для ловли введенного исключения, хотя это не будет работать в каждом браузере (например, не в IE):

// define exceptions "classes" 
function NotNumberException() {}
function NotPositiveNumberException() {}

// try some code
try {
    // some function/code that can throw
    if (isNaN(value))
        throw new NotNumberException();
    else
    if (value < 0)
        throw new NotPositiveNumberException();
}
catch (e if e instanceof NotNumberException) {
    alert("not a number");
}
catch (e if e instanceof NotPositiveNumberException) {
    alert("not a positive number");
}
79
ответ дан Lorenzo Polidori 23 November 2019 в 04:18
поделиться

Да. Можно бросить что-либо, что Вы хотите: целые числа, строки, объекты, безотносительно. Если Вы хотите бросить объект, то просто создают новый объект, как Вы создали бы один при других обстоятельствах, и затем бросать его. ссылка JavaScript Mozilla имеет несколько примеров.

39
ответ дан Rob Kennedy 23 November 2019 в 04:18
поделиться

Используйте бросок оператор.

JavaScript не заботится о том, что тип исключительной ситуации (как Java делает). JavaScript просто замечает, существует исключение и когда Вы ловите его, можно "посмотреть", что "говорит" исключение.

, Если бы у Вас есть различные типы исключительной ситуации, необходимо бросить, я предложил бы использовать переменные, которые содержат строку/объект исключения т.е. сообщения. Где Вам нужен он, использование "бросает myException" и в выгоду, сравнивает перехваченную исключительную ситуацию с myException.

5
ответ дан Community 23 November 2019 в 04:18
поделиться
Другие вопросы по тегам:

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