Chcę złapać wyjątek i połączyć go w ramach mojego wyjątku i rzucić w górę

Mam klasę zarządzającą zasobami. Wymaga klasy Loader, która może pobrać zasób ze ścieżki. Program ładujący jest abstrakcyjną klasą bazową, więc każdy może utworzyć nowy program ładujący.

Jeśli żądany jest zasób, którego nie ma w pamięci podręcznej, menedżer zasobów zażąda go od programu ładującego. Jeśli program ładujący się nie powiedzie, menedżer zasobów zgłasza klasę wyjątku, którą wywołałem, nazywając LoadingError.

Chcę, aby klasa Loader rzucała wyjątki, gdy zakończy się niepowodzeniem. Mogę wymagać od nich dziedziczenia z mojej własnej klasy podstawowej wyjątków, jeśli to konieczne.

Problem polega na tym, że przy ładowaniu ErrorError chcę, aby zawierał konkretne informacje o tym, dlaczego nie powiodło się. Ale nie wiem dokładnie, jakie wyjątki mogą zostać rzucone przez ładowarkę. (Użytkownik może, w swoich blokach połowowych wokół menedżera zasobów).

Albo mogę rzucić tylko LoadingError z pewnymi ogólnymi informacjami, albo zezwolić na wyjątek od Loadera i nie dotykać go. Ale chciałbym przechwycić wyjątek i spakować go w moim wyjątku LoadingError lub wskazać go w LoadingError. Ale nie wiem, jak długo potrwa wskazany wyjątek (zaniepokojony złym wskaźnikiem).

Które z trzech powinienem zrobić? (I jak, dla trzeciego ...)

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion