Условные блоки catch управляют вызовом
function getCustInfo(name, id, email)
{
var n, i, e;
if (!validate_name(name))
throw "InvalidNameException"
else
n = name;
if (!validate_id(id))
throw "InvalidIdException"
else
i = id;
if (!validate_email(email))
throw "InvalidEmailException"
else
e = email;
cust = (n + " " + i + " " + e);
return (cust);
}
Условные блоки catch управляют вызовом соответствующего обработчика исключений.
try {
// функция может вызвать три вида исключений
getCustInfo("Lee", 1234, "lee@netscape.com")
}
catch (e if e == "InvalidNameException") {
// вызывает обработчик неправильных имён
bad_name_handler(e)
}
catch (e if e == "InvalidIdException") {
// вызывает обработчик неправильных ids/идентификаторов
bad_id_handler(e)
}
catch (e if e == "InvalidEmailException") {
// вызывает обработчик неправильных email-адресов
bad_email_handler(e)
}
catch (e){
// незвестное исключение записывается в log-файл
logError(e)
}
Блок finally
Блок finally содержит операторы, выполняемые после выполнения блоков try и catch, но до выполнения операторов, идущих после оператора try...catch. Блок finally выполняется независимо от того, было ли вызвано исключение. Если исключение вызывается, операторы блока finally выполняются даже в том случае, если ни один блок catch не обработал исключение.
Вы можете использовать блок finally для корректного завершения скрипта при возникновении исключения; например, Вам может понадобиться освободить ресурс, связанный скриптом. В следующем примере файл открывается и операторы работают с ним (серверный JavaScript даёт возможность доступа к файлам). Если вызывается исключение при открытом файле, блок finally закрывает файл до того, как скрипт потерпит неудачу.
openMyFile();
try {
writeMyFile(theData)
}
finally {
closeMyFile() // ресурс всегда закрывается
}
Вложение операторов try...catch
Вы можете вкладывать один или более операторов try...catch друг в друга. Если внутренний оператор try...catch не имеет блока catch, на совпадение проверяется блок catch содержащего его оператора try...catch.
Copyright © 2000 Все Права Зарезервированы.
Дата последнего обновления 28 сентября 2000 года.
Начало Назад
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий