Udostępnij za pośrednictwem


DA0007: Unikaj wyjątki dla kontroli przepływu

Identyfikator reguły

DA0007

Kategoria

.NET Framework użycia

Metod profilowania

Wszystkie

Wiadomości

Konsekwentnie generowane są wysoka liczba wyjątków.Należy rozważyć ograniczenie stosowania wyjątków w logiki programu.

Typ wiadomości

Ostrzeżenie

Gdy profil za pomocą pobierania próbek.NET pamięci lub zasobów metody rywalizacji, musi zebrać co najmniej 25 próbek do wyzwolenia tej reguły.

Przyczyna

Wysoki stopień.Procedury obsługi wyjątków NET Framework były nazywane danych profilowania.Należy wziąć pod uwagę, aby zmniejszyć liczbę wyjątków, które są generowane przy użyciu innych logiki przepływu sterowania.

Opis reguły

Podczas stosowania procedur obsługi wyjątków do połowu błędów i innych zdarzeń, które zakłócają działanie programu jest dobrą praktyką, wykorzystanie procedury obsługi wyjątków jako część regularnego logiki wykonanie programu może być kosztowne i należy unikać.W większości przypadków wyjątki powinny używane tylko w okolicznościach, które rzadko występują i nie są oczekiwane.Wyjątki nie powinna służyć do zwracania wartości jako część przepływu typowego programu.W wielu przypadkach można uniknąć, podnoszenie wyjątków sprawdzania poprawności wartości i używając logikę warunkową wykonywanie instrukcji, które są przyczyną problemu.

Aby uzyskać więcej informacji, zobacz Zarządzanie wyjątkami sekcji Chapter 5 — Improving Managed Code Performance w Improving .NET Application Performance and Scalability woluminu z Microsoft Patterns and Practices biblioteki w witrynie MSDN.

Jak do zbadania ostrzeżenie

Kliknij dwukrotnie wiadomość w oknie Lista błędów, aby przejść do widoku znaków.Znajdź kolumnę, która zawiera .NET CLR Exceptions(@ProcessInstance) \ # wyrzuconych / s pomiary.Ustalić, czy poszczególnych faz wykonywania programu gdzie obsługa wyjątków jest częściej niż inne.Przy użyciu profilu pobierania próbek, spróbuj zidentyfikować instrukcji throw i try/catch bloków, które generują wyjątki częste.Jeśli to konieczne, dodać logikę do połowu bloki, aby ułatwić zrozumienie wyjątków, które są aktualnie obsługiwane najczęściej.W przypadku gdy jest to możliwe, instrukcji throw Zamień często wykonywane lub bloki catch przepływu prostych kontroli logiki lub Sprawdzanie poprawności kodu.

Na przykład gdyby stwierdzą, że aplikacja została obsługi częste wyjątki DivideByZeroException, dodawanie logiki do programu, aby sprawdzić, czy mianownikach z wartościami zerowymi poprawi wydajność aplikacji.