Aplikacje zawsze mogą zgłaszać błędy. Jeśli wystąpi taki błąd, użytkownik powinien zostać powiadomiony, ponieważ to, o co poprosił aplikację, nie powiodło się.
Ile informacji powinien jednak podać użytkownik? Myślę, że większość z nas zgadza się nie pokazywać śladu stosu ( czy ślad stosu powinien znajdować się w komunikacie o błędzie przedstawionym użytkownikowi? ), Ale nie mogę znaleźć pytania na temat pozostałej zawartości błędu lub tego, co pokazać użytkownik.
Na przykład język obsługujący wyjątki (.net, java) ma typ wyjątku do współdzielenia, w którym wystąpił wyjątek, oraz nieco bardziej klarowny komunikat towarzyszący wyjątkowi. Czy to również powinno być ukryte przed użytkownikiem? Czy powinniśmy to mimo wszystko pokazać? A może powinniśmy pokazać ogólny komunikat? czy powinniśmy pokazywać jeden z wielu komunikatów w oparciu o to, co stanowi podstawowy wyjątek?
You show the user what is actionable for them
. Jeśli znasz przyczynę problemu, pokaż to użytkownikowi w opisie. Ale ogólnie, jeśli znasz przyczynę błędu, poznasz rozwiązanie problemu, aby odpowiednio poinformować użytkownika.To zależy od tego, kim jest użytkownik i co może zrobić z informacjami.
Zasadniczo staraj się pokazywać im tylko przydatne informacje o tym, co mogą rozwiązać samodzielnie. Śledzenie stosu 40 linii z błędem wyrażenia regularnego u góry nie jest bardzo przydatne. Znacznie lepszy byłby komunikat z informacją, że data musi być sformatowana jako „rrrr-mm-dd” . Wszystko inne, a użytkownik może nie wiedzieć, jak zareagować na błąd, a następnie może nie chcieć korzystać z aplikacji, ponieważ obawia się, że spowoduje to więcej tajemniczych i przerażających błędów (i tak, użytkownicy nietechniczni są czasami przerażeni stosem ślady). I to może być złe dla biznesu.
W przypadku aplikacji wewnętrznych używanych przez innych programistów, jestem nieco bardziej zrelaksowany w wyświetlaniu śladu stosu, oprócz czegoś bardziej przydatnego , ponieważ wiem, że użytkownik może poradzić sobie z wyświetlaniem śladu stosu i prawdopodobnie będzie wiedział, co z tym zrobić.
W przypadku użytkowników nietechnicznych jedyne, co myślę, że wskazanie im śledzenia stosu jest w stanie krytycznym błędu, w którym potrzebujesz go do rozwiązania problemu, a oni są proszeni o skopiowanie i wklejenie śledzenia stosu i wysłanie go tobie, chociaż naprawdę o wiele lepszym sposobem na to jest poproszenie ich o przesłanie pliku dziennika lub jeszcze lepiej, aby aplikacja wysłała plik dziennika do programisty, po zapytaniu użytkownika o zgodę na udostępnienie pliku.
źródło
Wiadomości do użytkowników należy traktować w taki sam sposób, jak tworzenie nowego wyjątku do rzucenia - podajesz informacje, których będą potrzebować, aby zdecydować, co robić.
Będzie to oczywiście zależeć od twojej aplikacji i bazy użytkowników, ale powinna to być twoja główna zasada - Twoim celem powinno być dostarczenie informacji potrzebnych „dzwoniącemu” w celu ustalenia, co, jeśli w ogóle, mogą zrobić, aby pomyślnie wykonać pożądane działanie . Jeśli jest to coś prostego, np. Błąd dostępu do pliku, podajesz ścieżkę do pliku i komunikat, że nie możesz uzyskać do niego dostępu. Jeśli jest to wyjątek wskaźnika zerowego, po prostu podaj ogólny komunikat o błędzie.
Oczywiście będzie więcej komunikatów „niemożność wykonania żądanej czynności” niż takich, które użytkownik może naprawić, ale to tylko życie - większość wyjątków wynika z tego, że popełniliśmy błąd, a nie dlatego, że użytkownik skonfigurował środowisko nieprawidłowo.
źródło
To jest wspólny motyw:
Jak możesz pomóc niedoinformowanym / analfabetyzmowi komputerowemu, jednocześnie pokazując informacje, z których mogą korzystać bardziej zaawansowani użytkownicy, tacy jak programiści, programiści, testerzy itp.
Myślę, że odpowiedź brzmi: obie te rzeczy!
Kolejność jest jednak ważna i polecam:
Szczegóły techniczne to część, która zawiera informacje dotyczące zamówień zaawansowanych lub zwykłych użytkowników zgłaszających problem
źródło
To, co chcesz pokazać, zależy od tego, jak wstydzisz się zepsucia.
Chodzi o to, aby uzyskać szczegółowe informacje na temat awarii wsparcia technicznego tak szybko i płynnie, jak to możliwe. Może to oznaczać, że automatycznie wyślesz plik dziennika zawierający ślad stosu błędu zakończenia do domu lub poprosisz użytkownika o kliknięcie przycisku, który zainicjuje transfer. Może przez pamięć USB, jeśli nie ma połączenia z Internetem.
źródło
Podoba mi się uzasadnienie przyjętej odpowiedzi, ale z szacunkiem muszę przynajmniej nie zgodzić się z moją interpretacją ograniczenia informacji do tego, co jest „możliwe do wykonania” . Chcę dowiedzieć się trochę więcej jako użytkownika niż „nieoczekiwany błąd” .
I wprawdzie jestem trochę obeznany z komputerem i mam takie nastawienie, ale nie sądzę, że jest to szczególnie stronniczy pogląd. Ponieważ mogę zrobić wszystko, co w mojej mocy, aby usunąć to uprzedzenie, stosując ten sposób myślenia w domenach, dla których mam niewielkie doświadczenie, takie jak lotnictwo.
Chociaż niewiele wiem o lotnictwie, powiedz, że mój lot jest opóźniony lub odwołany, a jedyne, co mówią mi pracownicy, to: „Wystąpił nieoczekiwany błąd. Poczekaj 3 godziny na kolejny lot”. W takich przypadkach znajdziesz mnie trochę bardziej niezadowolonego klienta, ponieważ chociaż tak naprawdę nie wpływa to na mój sposób działania, chcę tylko dowiedzieć się nieco więcej o tym, dlaczego jestem niewygodne w ten sposób jako płacący klient.
Jeśli powiedzieli tylko: „Mamy burzliwą pogodę” lub „Mieliśmy awarię medyczną podczas naszego poprzedniego lotu”, albo awarię sprzętu, czy coś w tym rodzaju, to wystarcza mi, by wyrazić więcej niż „nieoczekiwany błąd” i trochę więcej zadowolenia siedząc i czekając 3 godziny na następny lot. Właściwie może nawet wolę jakiś technobabble, który idzie mi ponad głowę, do „nieoczekiwanego błędu”, na przykład: „W porządku, słowa wydobywające się z twoich ust docierają do mojego ucha, ale nie docierają do centralnego procesora. Ale teraz rozumiem problemu i pójdę napić się kawy i usiąść tam! Mam nadzieję, że załatwicie ten problem z tą rzeczą! ”
I często pod względem obsługi wyjątków, myślę, że zwykle masz dość tego rodzaju podstawowych informacji o tym, co wydarzyło się na
catch
stronie, nawet jeśli chcesz ukryć bardziej techniczne szczegóły wyjątku, takie jak:Nie wyświetla to nawet potencjalnie bardzo technicznych informacji dołączonych do wyjątku, ale przynajmniej mówi nam znacznie więcej niż „nieoczekiwany błąd”. Zapewnia przynajmniej kontekstowe „co / gdzie / kiedy”, nawet jeśli nie mówi „dlaczego / jak”. Myślę, że przynajmniej moja chęć korzystania z komputera nie jest szczególnie tendencyjna.
Reszta jest prawdopodobnie bardzo specyficzna dla Twoich klientów i konkretnych potrzeb. Ale mój apel dotyczy przynajmniej czegoś drobniejszego niż „nieoczekiwany błąd”.
źródło