I obecnie obsłużyć moje wyjątki tak:Czy mogę przenieść mój kod wyjątku do funkcji obsługi. Więc nie trzeba powtarzać tego samego kodu
try {
}
catch (ServiceException ex) {
ModelState.Merge(ex.Errors);
}
catch (Exception e) {
Trace.Write(e);
ModelState.AddModelError("", "Database access error: " + e.Message);
}
To działa, ale jest to ten sam kod powtarzam wielokrotnie. To, czego szukam, to sugestia, w jaki sposób mogę przenieść to do funkcji zewnętrznej. Niekoniecznie muszę przenieść blok try tam, ale przynajmniej drugi kod.
Może funkcja, która przeszła Exception i ModelState (jako odniesienie). Czy ktoś może zaproponować czysty sposób, w jaki mógłbym zakodować tę funkcję? Pytam o to, ponieważ prawie zawsze ktoś wymyśla rozwiązanie, o którym nigdy bym nie pomyślał. Dzięki Samantha.
W podobny sposób postępujesz z tymi wyjątkami, więc nie widzę, jak powtarzasz kod? Jeśli masz na myśli to, że jest on używany gdzie indziej, zawsze możesz utworzyć prywatną metodę, która obsługuje operacje wyjątków. – Prisoner
Tak, możesz przekazać wyjątek do dowolnej innej funkcji. –
Przepuścić wyjątek jako parametr do funkcji? Następnie możesz użyć tej funkcji tyle razy, ile chcesz, zmieniając tylko wyjątek zgłoszony. –