Jeśli mam metodę sprawdzającą poprawność jej argumentów, czy można wrzucić własne niestandardowe wyjątki pochodzące z System.ArgumentException
? Pytam, ponieważ ArgumentException
sam pochodzi z System.SystemException
i widzę sprzeczne wytyczne, czy aplikacja powinna pochodzić z SystemException
. (Choć pośrednio, czerpiąc z ArgumentException
jest jeszcze równoznaczne z wynikającymi z SystemException
.)Czy można wyprowadzić z System.ArgumentException?
widzę wiele wytycznych mówiąc nie wywodzą się z ApplicationException
, ale wynikają z Exception zamiast. Jestem z tego zadowolony. Nie jestem pewien, czy można czerpać korzyści z SystemException.
Jeśli nie powinienem czerpać z SystemException
, z czego należy wywnioskować moje klasy wyjątków "invalid argument"
?
Jeśli podane parametry są niepoprawne, oczekuje się, że metoda wyśle "ArgumentException". Możesz w pełni z niego korzystać w takich przypadkach.Wyprowadzanie z 'SystemException' nie ma sensu, ale rzucasz' ArgumentNullException', jeśli argument ma wartość null lub 'ArgumentOutOfRangeException', jeśli jest poza dopuszczalnym zakresem. Oba pochodzą z 'ArgumentException'. Tak więc wyrzucanie niestandardowego wyjątku, który nie jest pochodną 'ArgumentException' w takich przypadkach, jest IMHO czymś, czego nie należy robić *. Więc pójdę z odpowiedzią Botz3000. –