Попытка исключение, работа с ошибками в 1С 8.3
-

Попытка исключение, работа с ошибками в 1С 8.3

0
21826
24.06.2021 Алексей Зятнин

Содержание:

1.      Обработка исключительной ситуации

2.      Совершаем ошибку в 1С 8.3

3.      А что еще можно делать с результатом попытки?

4.      А ваши транзакции то здесь при чём?  

 

1.      Обработка исключительной ситуации

 

—        Приветствую, Амиго! Ты, как я понял, пришёл на мою лекцию по физическим основам изготовления термитных пирамидок для заряда аппаратов гиперболоидной конструкции? Нет? А зачем тогда?

 



—        Здравствуйте, профессор. Сегодня мы собирались разобрать конструкцию «Попытка-Исключение».

—        А… Это… Ну, тогда вот:




—        Кажется, понятно. А можно примеров добавить?

—        Ох уж эти юные роботы, всегда хотят практики. С примерами это будет выглядеть вот так:

 



Ох, извини, это для старых баз. На новых космолётах с прошивкой выше 8.1 есть более удобный способ узнать код ошибки.  

 

2.      Совершаем ошибку в 1С 8.3

 

Ты и сам можешь попробовать. Главное – придумать ошибку в 1С 8.3. Самая простая ошибка – это разделить что-нибудь на нуль или на, как это говорят на современном сленге, ноль.

 



В ответ получим:

 


   

Нажимаем на кнопку «Подробно...» и видим: Деление на 0 {NudlsProff_Расширение.NudlsProff_ФормаОшибок.Форма(96)}: Результат = 1/0

    

Добавляем нашей красоты:




Теперь пользователю ВИДНО, что случилось. И ПОНЯТНО, что с этим делать.

 

Описание='Деление на 0'

ИмяМодуля='NudlsProff_Расширение.NudlsProff_ФормаОшибок.Форма'

НомерСтроки=99

ИсходнаяСтрока='        Результат = 1 / 0;'

Позвоните Профессору Нудлсупо тел+7 (495) 125-23-77

и ознакомьтесь с теорией деления на ноль

https://elementy.ru/email/1530320/Pochemu_nelzya_delit_na_nol     

 

3.      А что еще можно делать с результатом попытки?

 

—        А что ещё мы можем делать в результате с попыткой?

—        Мы можем обработать попытку в попытке.

 



По своей сути Попытка-Исключение – это отлов исключительной ситуации. Ситуации, которая может произойти. Возможно, даже и не по вине юного робота. Робот же должен учесть все возможные ситуации при написании кода и обработать их. Но наш мир не идеален и даже программы не всегда работают идеально. Именно тогда мы и должны проанализировать возможные последствия и понять, что для нас важнее: чтобы код выполнился до конца или вызвать прерывание работы ошибочного кусочка кода, но дать пользователю исправить ситуацию и продолжить работу.

 



—        Профессор, Вы опять забыли про примеры.

—        Ах, да, конечно. Например, мы записывали файл на диск. Пользователь, конечно, выбрал папку для записи файла, но случайно удалил её во время работы программы. Вся наша программа рухнет из-за невнимательности.




Нельзя просто обернуть код в попытку и обезопасить себя от последствий. Также неправильно и маскировать ошибку общими фразами – дальнейший поиск и исправление этого бага вызовет уйму вопросов. Нужно показать максимально информативное сообщение пользователю, чтобы он передал его в службу поддержки. Всё-же, исключительная ситуация – это баг, который нужно исправлять.  




4.      А ваши транзакции то здесь при чем?

 

—        То есть если в программе что-то может пойти не так, например, при записи файла на диск, обработке web-hook, работе с API, синхронизации с другими базами, записи изменений в справочник или документ, для безопасности я должен обернуть потенциально опасный кусочек кода в Попытку-Исключение, и тем самым пользователь сможет продолжить работу, а мы всегда будем знать, где именно и почему возникает ошибка?

 

—        Да, Амиго, все верно! Кстати, поскольку уж речь зашла о записи объектов баз данных, очень важно не забывать правильно закрывать ваши транзакции:


 


Специалист компании «Кодерлайн» 

Алексей Зятнин

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.