Page 197 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 197
адрес электронной почты как строку. Если это не так, она возвращает экземпляр
объекта r ror. Для простоты будем считать нечто, содержащее символ , допусти
@
E
1
мым адресом электронной почты (см. главу 7 ) .
i
function validateEmail ( ema l )
return email . m atch ( / @ / ) ?
i
ema l :
new Еrrоr ( ' Ошибочный email : $ { e mail } ' ) ;
Чтобы определить, был ли возвращен экземпляр объекта r ror, мы можем ис
E
пользовать оператор typeof. Предоставленное нами сообщение об ошибке будет
присвоено свойству me s age.
s
i
const ema l = " j ane@doe . c om" ;
const validatedEmail = validateEmail ( e ma l ) ;
i
i f (validatedEma l instanceof Error ) {
i
consol . error ( ' Oшибкa : $ { v l i datedEmai l . m essage } ) ;
e
a
else {
соnsоlе . l о ( ' Корректный email : $ { validatedEmail } ' ) ;
g
Хотя это вполне допустимый и полезный способ использования экземпляра
E
объекта r ror, он чаще используется в процессе обработки исключений, который
мы рассмотрим далее.
и
Обработка с кпюче н и й с и с попьзован и е м
о
бп к ов try и с а tch
Для обработки исключений используется конструкция операторов try . . catch.
.
Идея в том, что осуществляется "попытка" (try) что-то сделать, и если при этом произой
a
дет какое-либо исключение, оно будет "перехвачено" (catch). Функция validateEm i l
в нашем предыдущем примере обрабатывает ожидаемую ошибку, когда некто пропу
скает символ @ в адресе электронной почты, но есть также возможность возникнове
ния и непредвиденной ошибки: непутевый программист может присвоить переменной
em i l нечто отличное от строки. Как следует из предыдущего примера, присвоение пе
a
ременной ema l значения null, числа или объекта (чего угодно, кроме строки) приводит
i
к ошибке. В результате программа сразу же прекращает свое выполнение, что весьма
недружественно по отношению к пользователю. Чтобы обезопасить себя от непредви
денной ошибки мы можем поместить свой код в блок оператора try . . catch.
.
const email = null ; 1 1 упс
try {
1 9 8 Глава 1 1 . Исключения и обработка ошибок

