Один оператор JavaScript, который редко появляется в дикой природе, это throw()
Оператор throw
Оператор throw
API как способ предупредить своих пользователей-разработчиков о проблемах во время выполнения, таких как отсутствующие или неверные входные данные. Его использование должно быть предпочтительнее, чем 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 — это инструмент для конкретного браузера, где он является кросс-браузерным языком, поэтому его можно безопасно интегрировать в основу скрипта без каких-либо шансов на неудовлетворенные зависимости.