|
Использование Попыток в коде | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Азат
30.12.11
✎
03:33
|
Как часто вы используете конструкции вида Попытка-Исключение-Конец попытки? К слову, попала в руки одна обработочка на пару-тройку тысяч строк, так в ней через каждые 20-30 строк очередная попытка...
|
|||||||||||||
7
Grusswelle
30.12.11
✎
04:55
|
Плохо это... Но приходится.
Редко |
|||||||||||||
8
Kraft
30.12.11
✎
05:16
|
(7) +многа
Редко |
|||||||||||||
13
forforumandspam
30.12.11
✎
06:39
|
Редко, но иногда без них нельзя.
Редко |
|||||||||||||
22
dk
30.12.11
✎
08:29
|
в основном при потоковом создании / изменении / проведении документов / справочников / файлов
Редко |
|||||||||||||
25
Ненавижу 1С
гуру
30.12.11
✎
08:34
|
как можно реже
Редко |
|||||||||||||
37
Stepa86
30.12.11
✎
09:34
|
(24) попытка - это транзакция??? а чо она тогда не откатывается, когда в исключение упадет?
я у нас для других программистов вот такую заметку про попытку сделал: 1) Чем их меньше, тем лучше. Рассматривайте попытку и переход по исключению в блок исключение как неявный GoTo. 2) Если можно обойтись без попытки, нужно обойтись без попытки. Например при преобразовании строки в число можно написать
и ловить исключение каждый раз при возведенном флажке "Останавливаться на ошибке" или можно написать сложнее:
но код не будет генерить ненужных исключений 3) любая ошибка внутри транзакции рвет эту транзакцию, поэтому внутри транзакции можно не пытаться ловить ошибки, если не предусмотрен полный выход из транзакции 4) если есть подозрения, что код может работать некорректно, то нужно сделать все, чтобы устранить эту неопределенность, а не совать его в попытку, чтоб разбирались другие программисты 5) за код типа
будут отстреливаться лишние органы. В блоке исключение ВСЕГДА (ВСЕГДА, блеать!!!) должен быть код по отработке, иначе потом нереально найти что рвет транзакцию 6) Использовать попытку нужно -для проверки входных параметров в код, которые мы не можем проверить еще выше. Это актуально для методов-баррикад (Совершенный код, 198 страница) -для вызова методов, предугадать результат которых мы не можем, например вызов кода внешней обработки, которая будет независимо обновляться (те же баррикады) -для вызова методов, которые сами генерят исключения, например подключение компоненты Редко |
|||||||||||||
39
vmv
30.12.11
✎
09:44
|
редко и если использую, то там либо один оператор либо вызов метода.
Все остальные потенциально "опасные" блоки кода стараюсь выносить в фкнкции которые возвращают булевый или значащий результат. Возврат и есть признак успеха, а не попытка. За объемные блоки кода в попытках предлагаю растреливать тремя патронами - в пах, в живот и тольколько потом в голову Редко |
|||||||||||||
46
Reset
30.12.11
✎
09:54
|
Только тогда, когда это нельзя без.
Редко |
|||||||||||||
47
vladenoff
30.12.11
✎
10:23
|
метод явно для самых ленивых. Напрягаемся, стараемся без исключений.
Редко |
|||||||||||||
58
ThreeTONE
30.12.11
✎
11:04
|
по мере надобности.
Редко |
|||||||||||||
74
Aleksey_a_z
30.12.11
✎
11:20
|
(73) + ошибся
Редко |
|||||||||||||
76
Fish
30.12.11
✎
11:21
|
(71) Я бы сказал так: когда невозможно или слишком сложно предусмотреть все варианты :)))
Ради интереса, поискал в типовой УПП "КонецПопытки" - найдено более 4000 :)))) Редко |
|||||||||||||
77
fisher
30.12.11
✎
11:22
|
Чаще всего при работе с внешними объектами. Т.е. по прямому назначению, так сказать.
Для упрощения кода - практически никогда. Даже если с проверками сложнее - такой код читабельнее, дает больше информации и не оставляет вопросов. Когда встречаю использование в чужом коде использование попытки без явной на то причины - сразу понимаю, что нужно быть готовым и к другим "сюрпризам грамотного кодинга". Редко |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |