Один оператор JavaScript, который редко появляется в дикой природе, это throw() Оператор throw
Оператор throwAPI как способ предупредить своих пользователей-разработчиков о проблемах во время выполнения, таких как отсутствующие или неверные входные данные. Его использование должно быть предпочтительнее, чем alert()
if(typeof input == 'undefined')
{
throw('Missing input');
}
else if(parseFloat(input) != input)
{
throw('Input must be a number');
}
Использование throw() Однако вы также можете создать и передать объект Error
var err = new Error();
err.name = 'My API Input Error';
err.message = 'Input must be a number';
throw(err);
Приведенный выше пример выводит этот вывод в консоли ошибок Opera:
Консоль Firefox не показывает имя ошибки, только сообщение; но это все еще почти так же полезно:
Важно отметить, что везде, где вы используете throw()останавливаться выполнение скрипта (а не только включающая область видимости). Поэтому вы должны расположить свой код так, чтобы любой оператор throw()
function err(type, message)
{
var err = new Error();
err.name = 'My API ' + type + ' Error';
err.message = message;
throw(err);
}
// the delete in this example won't happen
if(typeof this.input == 'undefined')
{
err('Input', 'Missing input');
delete this.input;
}
// but this delete will happen fine
if(typeof this.input == 'undefined')
{
delete this.input;
err('Input', 'Missing input');
}
Конечно, одно утверждение языка — хотя и полезное — никогда не сможет заменить полнофункциональный инструмент отладки, такой как Firebug; правильный отладчик позволяет вам устанавливать контрольные точки, контрольные точки, пошаговое выполнение … все виды совершенства. Firebug даже позволяет вам регистрировать сообщения на своей собственной консоли.
Но Firebug — это инструмент для конкретного браузера, где он является кросс-браузерным языком, поэтому его можно безопасно интегрировать в основу скрипта без каких-либо шансов на неудовлетворенные зависимости.

