sedmin писал(а) 04. Августа 2006 :: 08:45:Поддерживаю. С одним замечанием.
Методы должны называться ВыброситьИсключение() и ПолучитьИсключение(). И должны быть одинаковыми в ВыполняемомМодуле и в КОП.
Ну да, и еще бы параметры одинаковые иметь.
[/quote]
И еще бы сделать такой метод, который бы содержал в себе такую вещь:
Исключение
Искл=Сам.ПолучитьИсключение();
Если ТипЗначениеСтр(Искл)<>"МоеИсключение" Тогда
Ошибка=ОписаниеОшибки();
Сам.ВыброситьИсключение(Искл, Ошибка);
КонецЕсли;
КонецПопытки
[/quote]
Не понял, метод который сам распознает и транслирует исключения? ИМХО, это как раз лишнее - логику исключений определяет разработчик класса, и подобные методы с ней могут не совпадать. К тому же, как планируется его использование? Так:
Исключение
// Если тип исключения не совпадает с указанным - кидаем дальше
Сам.ПропуститьИсключение("МоеИсключение");
// а вот если соавдает - обрабатываем
КонецПопытки
ИМХО, хоть и в 1 строчку, но не наглядно.
К тому же у самой 1С есть оператор ВызватьИсключение, правда, работающий только внутри обработчика.
Им можно заменить конструкцию
Ошибка=ОписаниеОшибки();Сам.ВыброситьИсключение(Искл, Ошибка);
Тогда получим что-то типа:
Искл=Сам.ПолучитьИсключение();
ТипИскл=ТипЗначениеСтр(Искл);
Если ТипИскл="МоеИсключение1" Тогда
//Обработка одного типа исключения
ИначеЕсли ТипИскл="МоеИсключение2" Тогда
//Обработка другого типа исключения
Иначе
ВызватьИсключение; //1Совское или нераспознанное исключение - не обрабатаваем
КонецЕсли;