Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ВызватьИсключение c передачей контекста исключения #188

Closed
EvilBeaver opened this issue Nov 5, 2015 · 20 comments
Milestone

Comments

@EvilBeaver
Copy link
Owner

Originally reported by: artbear (Bitbucket: artbear, GitHub: artbear)


ВызватьИсключение Новый ИнформацияОбОшибке(/*Любой контекст*/);

По мотивам EvilBeaver/oscript-library#29 (comment)


@EvilBeaver
Copy link
Owner Author

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


Тогда сразу конкурс: как будет называться свойство в объекте ИнформацияОбОшибке, в котором мы будем получать то значение, которое передали в момент выброса?

Исключение
    Сообщить(ИнформацияОбОшибке.<какое-тоСвойство>);
КонецПопытки

@EvilBeaver
Copy link
Owner Author

Original comment by artbear (Bitbucket: artbear, GitHub: artbear):


КонтекстИсключения ? ЗначениеИсключения ? ОбъектИсключения ?

@EvilBeaver
Copy link
Owner Author

Original comment by Sergey Batanov (Bitbucket: dmpas, GitHub: dmpas):


ПараметрыИсключения, Параметры.

@EvilBeaver
Copy link
Owner Author

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


ДополнительныеДанные?

// ....
Исключение
     Сообщить(ИнформацияОбОшибке().ДополнительныеДанные);
     Сообщить(ИнформацияОбОшибке().ПараметрыИсключения);
     Сообщить(ИнформацияОбОшибке().Параметры);
     Сообщить(ИнформацияОбОшибке().КонтекстИсключения);
КонецПопытки;

@EvilBeaver
Copy link
Owner Author

Original comment by artbear (Bitbucket: artbear, GitHub: artbear):


ДополнительныеСвойства как у 1С ?

@EvilBeaver
Copy link
Owner Author

Original comment by artbear (Bitbucket: artbear, GitHub: artbear):


На чем остановимся?

@EvilBeaver
Copy link
Owner Author

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


Я за ДополнительныеДанные или за Параметры. @dmpas?

@EvilBeaver
Copy link
Owner Author

Original comment by artbear (Bitbucket: artbear, GitHub: artbear):


Параметры короче

@EvilBeaver
Copy link
Owner Author

Original comment by Sergey Batanov (Bitbucket: dmpas, GitHub: dmpas):


Поддерживаю Параметры.

@EvilBeaver
Copy link
Owner Author

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


Принято. Только одно уточнение. Если мы будем передавать в конструктор некий anyType, то тогда это Параметр, ибо Параметры намекает на какую-то коллекцию. Как считаете?

@EvilBeaver
Copy link
Owner Author

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


@dmpas, @artbear - все-таки множественное или единственное число?

@EvilBeaver
Copy link
Owner Author

Original comment by artbear (Bitbucket: artbear, GitHub: artbear):


Договорились о Параметры, значит, множественное

@artbear
Copy link
Collaborator

artbear commented May 19, 2016

Ура!

@EvilBeaver
Copy link
Owner Author

Запрашиваю всестороннее тестирование

@artbear
Copy link
Collaborator

artbear commented May 19, 2016

Доработаю код в своем проекте https://github.com/artbear/1bdd
Вот и будет тестирование :)

@artbear
Copy link
Collaborator

artbear commented Jun 4, 2016

@EvilBeaver Ты просил проверить, я проверил и нашел баг.
Выложил PR #274

Исправишь?

@artbear
Copy link
Collaborator

artbear commented Jun 4, 2016

Посмотрел код 756dc8b
ИМХО архитектурная проблема.
В случае параметризованного исключения и обычного исключения внутри кода обработки исключения на самом деле разные объекты, получаемые по ИнформацияОбОшибке() :(
В первом случае у объекта есть атрибут Параметры, а вот во втором нету, что и приводит к ошибке.

С точки зрения клиентского кода внутри кода обработки нельзя заранее знать, какое исключение было вызвано - обычное или параметризованное.
Поэтому предлагаю всегда использовать атрибут ИнформацияОбОшибке::Параметры

@artbear
Copy link
Collaborator

artbear commented Jun 4, 2016

@EvilBeaver Переоткрывай issue

artbear added a commit to artbear/1bdd that referenced this issue Jun 4, 2016
@EvilBeaver
Copy link
Owner Author

Переоткрывать не надо, это новый баг, штатный процесс

@EvilBeaver
Copy link
Owner Author

Да, я проглядел это... Спасибо @artbear.

EvilBeaver added a commit that referenced this issue Jun 5, 2016
Тест проверки использования параметров исключения при обычном исключении #188
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants