2012-04-10 12 views
8

Niedawno dołączyłem do projektu asp.net mvc, który jest już w toku, gdzie nie ma dużej spójności w radzeniu sobie z wyjątkami w kontrolerze; niektórzy deweloperzy zwracają dane do klienta, aby poinformować użytkownika, co jest nie tak, a inni odrzucają go, aby dostać się do programu obsługi na poziomie serwera, który je przetwarza i rejestruje - bez informowania użytkownika, co słychać.Zgłaszanie wyjątków i powiadamianie użytkownika

Wydaje mi się oczywiste, że oba podejścia są błędne same w sobie i zamiast tego muszą się wzajemnie uzupełniać; w co utknąłem, to jak to zrobić. Zakładam, że ewentualny moduł obsługi wyjątków/program rejestrujący może przekierować użytkownika na stronę błędu po złapaniu czegoś szczególnie nieprzyjemnego, ale ogranicza to mechanizm do bardzo poważnych problemów.

Poszukuję sposobu na wykonanie "rzutu" i "powrotu ..." w momencie, w którym przechwyciłem wyjątek, więc otrzymałem go po stronie serwera i po stronie klienta pozwala mi powiedzieć użytkownikowi, że nastąpiło jakieś dotknięcie.

Moje doświadczenie w asp.net jest bardzo ograniczone i chociaż uważam, że rozumiem mvc na tyle, aby nie było problemu, jest to rodzaj "jaka jest najlepsza praktyka?" pytanie od kogoś, kto pracuje z ludźmi, którzy nie zawracają sobie głowy najlepszymi praktykami.

+0

Sam fakt, że martwisz się tym, sprawia, że ​​jesteś dobrym dodatkiem do zespołu.Ale upewnij się, że twoi koledzy z drużyny dostrzegają wagę tego również, w przeciwnym razie będziesz jedyną osobą, która stara się poprawić sytuację, podczas gdy inni będą ją znowu łamać. – MarioDS

+0

Zgadzam się z Mario. Zwrócenie uwagi na problem ze swoim zespołem jest ważne. Jeśli uważasz, że masz lepszą metodologię radzenia sobie z wyjątkami, podziel się nią ze swoim zespołem, ponieważ w dłuższej perspektywie produkt będzie lepszy. Dyskusja z nimi może również ujawnić ich proces myślenia i rzeczy, które mogliście przeoczyć. – Tung

Odpowiedz

2

Istnieje dobry projekt o nazwie Elmah do rejestrowania błędów i wyjątków w aplikacjach ASP.NET. Można go znaleźć here

ELMAH (błąd Moduły rejestrowania i wysuwane) jest błąd zakład rejestrowania aplikacji szerokie, że jest całkowicie wtykowy. Może być on dynamicznie dodawany do działającej aplikacji internetowej ASP.NET lub nawet wszystkich aplikacji sieciowych ASP.NET na komputerze, bez potrzeby ponownej kompilacji ani ponownego wdrażania.

Po ELMAH spadło do działającej aplikacji internetowej i odpowiednio skonfigurowane, można uzyskać z następujących obiektów bez zmianę pojedynczego wiersza kodu:

  • Rejestrowanie prawie wszystkich nieobsłużonych wyjątków.
  • Strona zdalna wyświetl cały dziennik przekodowanych wyjątków.
  • Strona internetowa umożliwiająca zdalne przeglądanie szczegółowych informacji na temat wszystkich zarejestrowanych wyjątków, w tym kolorowych stosów śladów.
  • W wielu przypadkach można sprawdzić oryginalny żółty ekran śmierci wygenerowany przez program ASP.NET dla danego wyjątku, nawet z wyłączonym trybem customErrors .
  • Powiadomienie e-mailem o każdym błędzie pod numerem w momencie wystąpienia.
  • Kanał RSS z 15 ostatnich błędów z dziennika.
0

Aplikacja MVC, że pracuję nad implementuje Application_Error w Global.asax obsłużyć wyjątki rzucane z aplikacji, a następnie przekierowuje użytkownika do standardowej strony błędu. Kontroler dla strony błędu obsługuje rejestrowanie, a także wyświetla tylko tyle informacji o błędzie, aby umożliwić osobie pomocniczej odnalezienie sesji w systemie i pomóc w rozwiązaniu problemów.

Powiązane problemy