Skocz do zawartości

[C#] Jak pozbyć się informacji o wyjątkach


Rekomendowane odpowiedzi

Łapie pewne wyjątki, ale w oknie z danymi wyjściowymi jest informacje, że one wystąpiły. To normalne. Ale te wyjątki występują na tyle często, że output jest tym tak zespamiony, że nie widzę kiedy jakaś istotna informacja pojawi się w output'cie. Jest jakiś prosty patent na to, żeby najlepiej wyłączyć tylko wystąpienie danego wyjątku w konkretnym miejscu? Wolałbym wiedzieć kiedy w niektórych sytuacjach wyjątki występują nawet kiedy są przechwycane, a w innych te same wyjątki robiłyby mi tylko spam. Czy jedyna opcja to wyłączyć całkiem widoczność przechwyconych wyjątków w output i pisać ręcznie w tych które mnie interesują notkę do konsoli?

Odnośnik do komentarza
Udostępnij na innych stronach

Zapewne niewłaściwie podchodzisz do łapania wyjątków. Globalna funkcja łapiąca WSZYSTKIE wyjątki to chyba najgorsze rozwiązanie na które mogłeś wpaść - właśnie przez to masz ten problem. Jeżeli API zapewnia rzucanie wyjątkami, powinieneś je obsługiwać z poziomu swojego kodu już w aplikacji, podczas wykonywania jakiejś funkcji, zwłaszcza jeżeli nie chcesz "pewnych" wyjątków propagować w górę. Minimalizuj korzystanie z globalnej funkcji do łapania wyjątków.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Nigdy nie skorzystałem z żadne funkcji do globalnego łapania wyjątków w tym kodzie. Chodzi o to, że gdy łapie wyjątek to i tak debugger informuje, że został złapany. Ogólnie to nawet przydatne, ale są sytuacje, gdy np sprawdzam czy element istnieje próbując go znaleźć i sprawdzając, czy wtedy otrzymam stosowny wyjątek. Jeśli to dzieje się np. z poziomu timer, wykonywanego kilka razy na sekundę to pojawia się problem spamu w output'cie.

Odnośnik do komentarza
Udostępnij na innych stronach

A więc to "problem" z IDE a nie samym językiem czy kodem. Z tą globalną funkcją to zasugerowałem się Twoim ostatnim pytaniem więc stąd ta nadinterpretacja :P Podejrzewam, że używasz Visual Studio - IMO w takim razie jedyne co możesz zrobić, to wyłączyć wyświetlanie wyjątków (PPM na "Output Window", odznacz "Exception Messages") a informacje które Cię interesują wypisywać do konsoli samemu, np. możesz użyć klasy System.Diagnostics.Debug żeby pisać do strumienia "Output Window".

 

xjOgYf0.png

 

Nie widzę, żeby Visual Studio miał jakąś funkcję do filtrowania wyjątków np. po nazwie, niestety.

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, ale pytanie o globalne wyjątki zadałem, ale w sumie jeszcze nie miałem okazji się pobawić tamtym rozwiązaniem, bo grzebie aktualnie w innej części kodu. A o tym wiedziałem, że da się je całkiem wyłączyć i ręcznie wypisywać przez Debug. Zastanawiałem się czy jest jakiś prostszy sposób. No, ale trudno. Dzięki za pomoc!

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety sporo drobnych, acz użytecznych funkcji brakuje Visual Studio, które by mi ułatwiły z pisaniem w C++ i TypeScript/JavaScript. Dlatego w większości czasu i tak korzystam z VisualStudio Code. Chociażby wyświetlanie białych znaków, żeby nie commitować tabulatorów zamiast spacji (ofc. linter przed commitem też może pomóc, ale jakoś wygodniej mi mieć bieżący podgląd co robi IDE), albo zamiana zakończeń linii z CRLF (Windows) na LF (Uinx like) to po prostu koszmar pod Visual Studio, to samo dotyczy się kodowania znaków na UTF-8...

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...