MaxGaming Opublikowano 3 Maja 2019 Udostępnij Opublikowano 3 Maja 2019 Ł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 Więcej opcji udostępniania...
Konrad-GM Opublikowano 3 Maja 2019 Udostępnij Opublikowano 3 Maja 2019 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. MaxGaming 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 4 Maja 2019 Autor Udostępnij Opublikowano 4 Maja 2019 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 Więcej opcji udostępniania...
Konrad-GM Opublikowano 4 Maja 2019 Udostępnij Opublikowano 4 Maja 2019 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 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". Nie widzę, żeby Visual Studio miał jakąś funkcję do filtrowania wyjątków np. po nazwie, niestety. MaxGaming 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 4 Maja 2019 Autor Udostępnij Opublikowano 4 Maja 2019 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 Więcej opcji udostępniania...
Konrad-GM Opublikowano 4 Maja 2019 Udostępnij Opublikowano 4 Maja 2019 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę