Обработка исключений



Конструкция «Попытка...Исключение»

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

Однако разработчик может перехватывать возникающие ошибки и обрабатывать их по своему усмотрению, например:

Попытка СредняяЦена = СуммаВсего / Количество; Исключение //Возникла ошибка деления на ноль. //Будем считать, что количество равно 1. Количество = 1; СредняяЦена = СуммаВсего; КонецПопытки;

Чем меньше в вашей программе будет таких конструкций, тем лучше. Все потенциальные ошибки необходимо «отлавливать» по возможности еще до их возникновения. Конструкцию Попытка следует применять для внешних ошибок и при работе с базой данных, т.е. для тех ошибок, которые не являются ошибкой написания программы.

В следующем примере производится попытка записать файл, и если возникнет ошибка, то она будет перехвачена обработчиком исключений:

Попытка ТекстФайл.Записать(ПутьКФайлу); Исключение Сообщить("Не удалось записать файл!"); КонецПопытки;

Внутри блока Исключение...КонецПопытки можно вызвать функцию ОписаниеОшибки, которая возвращает сообщение о возникшей ошибке в виде строки. Эту строку можно выдать в окно сообщений, записать в журнал регистрации или выполнить другие действия.

Кроме того, есть команда ВызватьИсключение, которая может применяться только внутри блока обработки исключения. Хотя программист и обработал ошибку, но он может ее пропустить (передать обработчику вышестоящего уровня), например, если она неисправима:

Попытка СредняяЦена = СуммаВсего / Количество; Исключение Сообщить("Эх! Надо было проверить количество на ноль!"); Сообщить (ОписаниеОшибки()); ЗаписьЖурналаРегистрации(ОписаниеОшибки()); //хотя мы и обработали ошибку, но программу все равно прервем ВызватьИсключение; КонецПопытки;

Обработчики исключений могут быть вложенными друг в друга. Если ошибка не обработана во внутреннем блоке Исключение...КонецПопытки, тогда она обрабатывается внешним обработчиком, а если его нет, выдается системное сообщение об ошибке.

 


Дата добавления: 2015-12-20; просмотров: 18; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!