Witam serdecznie,
mam mały dylemat. Otóż tworze aplikację opartą o jakieś źródło danych (nie ma powiedziane, czy jest to baza danych, czy też plik xml).
Z tego też powodu podzieliłem aplikację na 3 projekty.
- Główny (zawiera klasy wykorzystywane w dwóch pozostałych projektach)
- Dostępu do danych
- Wizualizacja
Stworzyłem sobie interfejs providera danych, który jest implementowany przez różne inne klasy, ma on metody w stylu Create, Read, Delete itd.
I teraz mam taki mały problem, w jaki sposób obsługiwać błędy. Powiedzmy, że w jakimś providerze danych znajdującym się w projekcie Dostępu do danych wyskoczy mi wyjątek. Wiąże się to bardzo często z wyświetleniem okienka dialogowego z jakąś informacją typu: brak dostępu do bazy danych, lub podany plik nie istnieje. Nie chce tego robić w klasie provider'a bo ona jakby patrzeć nie służy wizualizacji w żaden sposób.
Załóżmy taki scenariusz: po kliknięciu przycisku Load, wywoływana jest metoda LoadData klasy zarządzającej jakimiś obiektami (z projektu Głównego), LoadData wywołuje metode Read provider'a(projekt dostępu do danych), a tam wyrzucany jest wyjątek, że nie można połączyć się z bazą danych.
Wpadłem na pomysł kaskadowego wyrzucania wyjątków, tzn. po złapaniu wyjątku wyrzucić go jeszcze raz.
I tak aż dojdziemy do warstwy prezentacji, ale nie wiem czy to dobre rozwiązanie.
Jestem bardzo ciekaw, jak Wy rozwiązujecie takie problemy. Jeżeli za słabo nakreśliłem problem, proszę o informację wtedy postaram się go lepiej opisać :)
Pozdrawiam serdecznie,
whill3r :)