Тема: Exception при виклику метода WCF Сервіса
Пишу програму для автоматизації роботи та зберігання даних певної організації
Виникли певні складнощі з розумінням роботи WCF Сервіса
Код писати тут не буду, бо нереально багато і суть питання в логіці, а не коді
Програма багаторівнева:
1) WPF Інтефейс користувача (усілякі форми, дата гріди і т.п. + первинна перевірка даних в оборобниках)
2) Бібліотека бізнес логіки(створюється WCF клієнт та викликаються його методи)
3) WCF Сервіс (звичайний посередник)
4) Бібліотека бізнес логіки (Ретельна перевірка даних)
5) ДАЛ (запис, читання, перевірка по БД)
Коротше, суть проблеми:
Потрібно додати нового менеджера в базу даних. Дії наступні:
1. Заповнюємо необхідні поля WPF форми (!!! усі вони є обов*язковими для БД)
2. Робимо первинну перевірку введених даних і викликаємо метод додавання менеджера на стороні WCF Сервіса
3. WCF Сервіс викликає відповідний метод з Бізнес логіки
4. БЛЛ (бізнес логіка) робить різні перевірки (існування лоігна, мейла в БД ...), конвертації даних і звертається до ДАЛа (якщо все в порядку, звісно), щоб той додав нового менеджера в БД
5. ДАЛ робить свою непильну роботу і тут нам має бути щастя
На кожному етапі, починаючи з третього(включно), усі методи повертають нам екземпляр створеного мною класу Response {Exception ex, bool Result, string Message}.
Нарешті ми підійшли до суті проблеми.
Якщо я заповнюю усі поля правильно (валідними даними), то менеджер успішно додається в БД і мені повертається наступний Response {ex == null, Result == true, Message == "Користувач такий-то успішно доданий в базу даних"}.
Якщо якась із перевірок відловлює помилку, то мені повертається Response з усіма відповідними даними, наприклад {ex == null, Result == false, Message == "Користувач з таким логіном уже існує"}
Але, якщо я додаю менеджера у якого замість імені введено декілька пробілів (решта даних валідна), то ДАЛ, при спробі додати такого користувача, видає Exception, блок catch записує даний Exception в Response і той повертається WCF Сервісу. Але тут стається магія і WCF Сервіс, замість того, щоб показати нам Exception ДАЛа, генерує власний Exception, скрін якого я прикріпив до даної теми.
питання досить очевидне: чому WCF Сервіс викидає власний Exception, а не повертає той, що йому передали?