Класс Result с предупреждениями
От: es3000  
Дата: 16.06.19 10:08
Оценка:
Добрый день!

Нужно из класса операции (задачи) вернуть результат.
Класс результата надо написать свой.

Чтобы не "изобретать велосипед", просмотрел несколько библиотек и фреймворков — как это лучше сделать.
Там где посмотрел — этот класс результата (или класс самой операции) имеют только свойства типа "IsCompletedSuccessfully" или "IsFaulted".
То есть они дают знать клиентскому коду только о том, что операция завершена либо успешно либо возникла ошибка.

Например, здесь:
https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.tasks.task-1?view=netcore-2.0

Но в моей задаче, кроме "завершено успешно" или "произошла ошибка" есть еще третий вариант — "есть предупреждения".
"Есть предупреждения" — это когда при выполнении задачи были некритические ошибки, которые были корректно отработаны.
В этом случае клиентскому коду нельзя отправить ответ, что результат полностью "успешный", но и ответить "ошибка" — тоже не правильно.

Есть какие-нибудь фреймфорки, в которых для результата предусмотрено три варианта: "успешно", "ошибка", "предупреждения"?
Хочется посмотреть как это там реализовано, хотя бы на уровне интерфейса класса и его методов.
Re: Класс Result с предупреждениями
От: Quadri  
Дата: 15.06.19 22:35
Оценка: +4
Здравствуйте, es3000, Вы писали:

E>Но в моей задаче, кроме "завершено успешно" или "произошла ошибка" есть еще третий вариант — "есть предупреждения".

E>"Есть предупреждения" — это когда при выполнении задачи были некритические ошибки, которые были корректно отработаны.
E>В этом случае клиентскому коду нельзя отправить ответ, что результат полностью "успешный", но и ответить "ошибка" — тоже не правильно.

E>Есть какие-нибудь фреймфорки, в которых для результата предусмотрено три варианта: "успешно", "ошибка", "предупреждения"?

E>Хочется посмотреть как это там реализовано, хотя бы на уровне интерфейса класса и его методов.

В чем проблема добавить еще одно свойство в класс Result или завести класс Error в котором будет описан уровень ошибки и, например, еще текст ошибки?
И на клиенте обрабатывать соответствующим образом.
По-моему тут особо нечего обсуждать — делать как больше нравится или как проще)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.