Ben.Demystifier – przyjemny stack trace

Wprowadzenie

W dzisiejszym wpisie będę chciał Ci pokazać dość ciekawą bibliotekę – Ben.Demystifier. Może uznasz ją za ciekawostkę, ale jej dodanie i wykorzystywanie nie jest problematyczne czy czasochłonne. A może później ułatwić szukanie błędów i analizowanie logów.

Tytułowy Ben.Demystifier to biblioteka, która zmienia zawartość wygenerowanego stack trace w momencie wystąpienie wyjątku. Na przestrzeni 20 lat istnienia C# Microsoft dodawał nowe funkcjonalności do języka, z czasem stos wywołań dość mocno się rozrósł i pojawiło się sporo niepotrzebnych rzeczy. Ben.Demystifier ma za zadanie przenieść stack trace do czasów obecnych.

Ben.Demystifier

W tym wpisie wyjątkowo będę bazował na przykładzie przygotowanym przez twórców biblioteki. Przykład ten bardzo fajnie pokazuje różnicę w klasycznym stack trace oraz tym, co przygotowuje biblioteka. Kod przykładu znajduje się na githubie: (https://github.com/benaadams/Ben.Demystifier/blob/master/sample/StackTrace/Program.cs). Poniżej znajdziesz jego wersję, którą przygotowałem w dotnetfiddle.

Na poniższym obrazku z wynikiem działania przykładu widać różnicę w wygenerowanym stosie wywołań:

Ben.Demystifier przykład
Obrazek pochodzi z githuba Ben.Demystifier – https://github.com/benaadams/Ben.Demystifier

Na pierwszy rzut oka da się zauważyć, że stos wywołań jest krótszy, zawiera mniej linijek. Dodatkowo widać również typ wyniku poszczególnych metod, na przykład void Pogram.Main na samym dole stosu.

Metody asynchroniczne (te z wykorzystaniem słów kluczowych async/await) również są fajniej zapisane w stosie wywołań. Po pierwsze nie ma dodatkowych linijek z obsługą klasy Task oraz sama metoda jest ładnie oznaczona słowem kluczowym async.

Biblioteka ma dodatkowo wsparcie dla enumeratorów, method lambda, parametrów generycznych, in, out, ref, konstruktorów i jeszcze kilku innych aspektów. Najlepiej przejrzeć sobie dokładną listę na stronie projektu: https://github.com/benaadams/Ben.Demystifier

Samo użycie biblioteki jest dość proste. Instalujemy ją z nugeta, a później korzystamy z metody Demystify:

exception.Demystify()

Poniżej jest osadzony przykład z githuba biblioteki. Możesz się nim pobawić i zobaczyć w praktyce działanie biblioteki:

Darmowy kurs Visual Studio

Pracując z setkami programistów, zauważyłem, że większość osób nie pracuje efektywnie w Visual Studio. W skrajnych przypadkach korzystali z kopiowania z wykorzystaniem menu Edit. Wiem, że to dziwne, ale naprawdę niektórzy tak pracują. Dlatego postanowiłem stworzyć kurs Visual Studio – aby pomóc koleżankom i kolegom w efektywniejszej pracy.

Przygotowałem 30 lekcji e-mail, w których pokażę Ci, w jaki sposób pracować efektywniej i szybciej w Visual Studio. Poznasz dodatki, bez których nie wyobrażam sobie pracy w tym IDE.

Po więcej informacji zapraszam na dedykowaną stronę kursu: Darmowy Kurs Visual Studio.

Quiz C#

Ostatnio przygotowałem również quiz C#, w którym możesz sprawdzić swoją wiedzę. Podejmiesz wyzwanie?

Podsumowanie

Mam nadzieje, że biblioteka Ben.Demystifier przypadła Ci do gustu i zaczniesz jej używać w swoich projektach. Osobiście pracuje mi się lepiej z stack trace z tej biblioteki, niż z domyślnym z .NET.

A jaka jest Twoja opinia?

Szkolenie C# i .NET 5

Szkolenie C# i .NET 5

Zainteresował Ciebie ten temat? A może chcesz więcej? Jak tak to zapraszam na moje autorskie szkolenie o C# oraz .NET.

1 thought on “Ben.Demystifier – przyjemny stack trace

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.