Вы могли реализовать свои собственные исключения и их обработку, например, как здесь:
// 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");
}
Да. Можно бросить что-либо, что Вы хотите: целые числа, строки, объекты, безотносительно. Если Вы хотите бросить объект, то просто создают новый объект, как Вы создали бы один при других обстоятельствах, и затем бросать его. ссылка JavaScript Mozilla имеет несколько примеров.
Используйте бросок оператор.
JavaScript не заботится о том, что тип исключительной ситуации (как Java делает). JavaScript просто замечает, существует исключение и когда Вы ловите его, можно "посмотреть", что "говорит" исключение.
, Если бы у Вас есть различные типы исключительной ситуации, необходимо бросить, я предложил бы использовать переменные, которые содержат строку/объект исключения т.е. сообщения. Где Вам нужен он, использование "бросает myException" и в выгоду, сравнивает перехваченную исключительную ситуацию с myException.
Из WebReference :
throw {
name: "System Error",
level: "Show Stopper",
message: "Error detected. Please contact the system administrator.",
htmlMessage: "Error detected. Please contact the <a href=\"mailto:sysadmin@acme-widgets.com\">system administrator</a>.",
toString: function(){return this.name + ": " + this.message;}
};