W internecie jest wiele artykułów na temat zasadności rzucania czy też nie rzucania wyjątków.
Wiele artykułów mówi o tym aby nie rzucać wyjątków, gdyż powoduje to drastyczne obniżenie wydajności aplikacji. Argumentacja tego stanowiska odnosi się do potrzeby zwinięcia stosu wywołań oraz wypełnienia klasy wyjątku.
Czy aby na pewno jest tak, że rzucenie wyjątku spowoduje aż tak ogromne spowolnienie aplikacji, że warto zwrócić kod wyjątku czy też wartość pustą z wywołania np. metody?
W większości przypadków rzucenie wyjątku nie spowoduje znacznego spadku wydajności aplikacji. Jeżeli rzucenie wyjątków w kodzie który tworzymy powoduje duży spadek używalności aplikacji, znaczy to, iż stosujemy wyjątki w nieodpowiedni sposób.
Jednym z możliwych rozwiązań, jest sprawdzanie parametrów wejściowych dla danej funkcji przed przekazaniem ich do niej. Innym rozwiązaniem jest zaimplementowanie metody typu TryX - przykładem może być TryParse. Szczegółowy opis tych wzorców można odnaleźć na stronie http://msdn.microsoft.com/en-us/library/ms229009.aspx
Stosowanie wyjątków jest głównym sposobem raportowania nieprzewidzianych i błędnych sytuacji w kodzie. Należy się tego trzymać i unikać stosowania "zamienników" wyjątków znanych np. z języka C.
niedziela, 27 stycznia 2013
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz