Сначала кое-что об исключениях.
Причины, о которых вы упомянули, - это детали исключения, а не само исключение.В случае сбоя операции (здесь веб-метод собирается что-то сделать, например, зарегистрировать пользователя), есть только одно исключение (например, RegistrationFailedException
).Все остальное - это информация.
Exception
когда происходит (я имею в виду необработанные исключения, конечно), больше исключений не может быть, поэтому вы должны вернуть первое и единственное необработанное исключение с соответствующей информацией (событиеargs).
Хорошей идеей является проектирование Exception Schema
.Описать исключение и его информацию в одном сообщении в соответствии с вашей схемой исключения и вернуть его пользователю.