Показать сообщение отдельно
  #6 (permalink)  
Старый 12.11.2011, 22:03
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Предположим есть функция которая вычисляет цену товара с учетом НДС:
function calcPrice(basePrice) {
    return basePrice * 1.2;
}

Однако даже если предположить что передаваемый в нее параметр basePrice всегда является числом, то есть ситуации когда параметр будет невалиден, например, если цена отрицательная. В таком случае функция отработает нормально, но полученный результат будет некорректен и все последующие операции с этим результатом будут бессмысленны. Таким образом необходимо остановить выполнение скрипта. В этой ситуации можно применить исключение, которое будет уведомлять об ошибке:
function calcPrice(basePrice) {
    if (basePrice < 0) {
        throw 'Price can not be negative.';
    }

    return basePrice * 1.2;
}

Теперь при вводе отрицательной цены скрипт остановится и в консоль выведется сообщение об ошибке, в противном случае мы бы получили отрицательный результат (без ошибки) и это привело бы к фейлу всех дальнейших расчетов. Если приложение большое, то поиск места в котором возникает ошибка мог бы занять достаточно значетельное время.

Последний раз редактировалось DreamTheater, 12.11.2011 в 22:07.
Ответить с цитированием