Возвращение исключительной ситуации

fedotxxl

Well-known member
09.11.2005
614
0
#1
Всем привет... из темы, конечно, ничего не понятно =)

Итак, у нас есть функция. У функции есть правильный ход исполнения. Предположим во время исполнения функции возникла запланированная исключительная ситуация. Как вернуть информацию по исключению наверх?

Здесь есть маленькая оговорка - функция используется внутри класса и может использовать другие функции другий классов, которые так же могут вернуть ошибку.

Предлагаемые мною решения:
Вариант 1. Каждый класс содержит контейнер (errorAnswer). Если возникло исключение - функция заполняет контейнер и возвращает false
Вариант 2. В каждую функцию последним параметром передается переменная-контейнер, в которую функция может записать информацию по исплючению.
Вариант 3. Функция генерирует исключение, которое ловится выше

Что выбрали вы для решения данной проблемы?
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
Вариант 4. Пишется библиотека с классом-контейнером ошибок, подключаемая во все остальные библиотеки.

Сам использую вариант 3.
 

fedotxxl

Well-known member
09.11.2005
614
0
#4
nvy
Оно так и есть. Вопрос как передавать между функциями / классами экземпляр класса контейнера? У меня тут возникла идея... что если сделать один глобальный экземпляр?
 

nvyush

Lotus team
22.04.2009
2 317
0
#5
nvy
Оно так и есть. Вопрос как передавать между функциями / классами экземпляр класса контейнера? У меня тут возникла идея... что если сделать один глобальный экземпляр?
Ну так а я о чём? Вариант №4. Сделать синглтон по рецепту http://codeby.net/ipb.html?s=&sh...st&p=147161.
 

fedotxxl

Well-known member
09.11.2005
614
0
#6
nvy
Вобщем-то скорее всего на этом варианте и остановлюсь. Правда нужно поиграться еще здесь...