2009-07-16 7 views
39

Widziałem oba komunikaty wyjątków zi bez kropki. Mogę wymyślić kilka powodów, dla których obie mogą być dobre.Czy kończysz komunikaty o wyjątkach z kropką?

  • Żadna kropka nie dałaby Ci wolności dodawania okresu lub jego pominięcia, jeśli chcesz. Może się przydać, jeśli wiadomość przechodziła w jakiś tytuł lub coś w tym stylu.
  • Z kropką zawsze wiesz, że miałeś "pełne zdanie" i wygląda na bardziej skończony.

Które zalecasz?

Może to być również problem w zlokalizowanych ciągach zasobów. Oczywiście nie można wstawić kropki po wszystkim (wyglądałoby dziwnie z kropkami po tekście na przyciskach i elementach menu itp.). Ale czy powinieneś zostawić okres od wszystkiego, aby był spójny i dodać go później, gdy jest przydatny? A może wolisz umieścić okres, w którym wydaje się odpowiedni? Na przykład po wszystkich ciągach zasobów i komunikatach wyjątków, które są zdaniami, ale nie po słowach. Ale co powiesz na bardzo krótkie zdania? Na przykład "Utwórz nowy plik". Może może pomijać okresy dla łańcuchów, które również były uważane za akcje ... (Po prostu myślę podczas pisania tutaj ...

Nie najważniejsza rzecz na świecie, wiem, ale takie małe rzeczy, które mają tendencję do Trochę mnie to denerwuje, lubię konsekwencję i wiem, dlaczego robię to, co robię Problem w tym, że nie jestem pewien, do kogo należy: p

Odpowiedz

38

Tak Zwykle traktuję wiadomości o wyjątkach jako pełne zdania, kończąc je kropką.

Jednakże, komunikat w wyjątku jest przeznaczona do wywoływacza i nie użytkownik. może V Trzeba też pamiętać, że ten sam podstawowy wyjątek powinien skutkować dwoma różnymi komunikatami dla użytkownika końcowego, w zależności od kontekstu, w którym wywołano metodę wyrzucania wyjątków.

Naprawdę powinieneś pokazywać użytkownikowi mniej technicznych, bardziej przyjaznych dla użytkownika wiadomości.

+7

+1 za zgodność ze strukturą .NET. –

5

Zawsze używam kropek w opisach wyjątków. Prostym faktem jest to, że zdania, które są odpowiednio przerywane, są łatwiejsze do odczytania i bardziej profesjonalnie wyglądające, co jest ważne dla postrzeganej jakości - nie sądzisz?

Porównaj go:

Zawsze używam okresów w moich opisach wyjątku Faktem jest, że zdania, które są odpowiednio przerywane są łatwiejsze do odczytania i bardziej profesjonalny wygląd, który jest ważny dla postrzeganej jakości nie myślisz

+0

Interesująca ilustracja. –

+2

Wydaje mi się, że nie wyświetlanie komunikatów o wyjątkach użytkownikom końcowym jeszcze bardziej zwiększyłoby postrzeganą jakość. –

+0

Tak, poprawnie przerywane zdanie z dawką przekaźnika rtęci lokl moore proesionall – Guffa

8

Komunikaty o wyjątkach w ramach są przerywane kropkami; Z tego powodu staram się robić to samo.
W każdym razie wybierz styl i spróbuj go trzymać ...

-1

Wykorzystaj swoją najlepszą ocenę. Czasem używam również wykrzyknika. :-)

+0

To mnie naprawdę denerwuje, gdy widzę, że to robią programiści. Wykrzykniki powinny być używane tylko do oznaczenia emocji, chyba że masz dość chichoczącą, uroczą, przyjazną aplikację, której nie użyłbym. –

4

Komunikaty o wyjątkach stanowią część interfejsu programisty aplikacji. Interfejsy są zazwyczaj zaprojektowane w celu ułatwienia użytkownikowi wykonania określonego zadania. W przypadku wyjątku dostarczony interfejs powinien być zaprojektowany w celu przekazywania informacji o błędzie, który wystąpił w aplikacji.

Decydując się na wyjątek i napisać taką linię

throw new ArgumentException("The string must contain at least one character."); 

wtedy masz już szereg decyzji dotyczących interfejsu w tym:

  • typu Wyjątek
  • Brak zlokalizowane komunikaty o wyjątkach (zwykle wymaga tego zakodowany ciąg)
  • Ten wyjątek nie jest wynikiem żadnego innego warunku (brak wewnętrznej wyjątek)

Pamiętaj, że interfejs programisty istnieje po to, aby obsługiwać programistów i interfejs użytkownika, aby obsługiwać użytkownika. Ten pierwszy ma znacznie inne wymagania niż ten drugi, więc to, co dobre, może nie być dobre dla drugiego, więc okres w komunikacie wyjątku nie powinien dotyczyć interfejsu użytkownika, ponieważ nie powinien być widoczny dla użytkownika końcowego.

Korzystanie z okresu nie jest w większości przypadków główną decyzją, ale należy rozważyć, czy jego obecność (lub jego brak) jest korzystna lub szkodliwa dla interfejsu, biorąc pod uwagę punkty już podniesione, w tym spójność i lokalizację ramek.

Wiem, że ten wpis jest trochę rozwlekły i prawdopodobnie mały astronauty, ale mam nadzieję, że ci to pomoże.

22

P. Czy kończysz komunikaty o wyjątkach z kropką?

Od Best Practices for Exceptions& # x2020; na MSDN w sekcji „Tworzenie i podnoszenie wyjątki”:

  • Stosować poprawne gramatycznie komunikaty o błędach tym kończąc interpunkcyjnych. Każde zdanie w ciągu opisowym wyjątku powinno kończyć się kropką. . Na przykład „. W tabeli dziennika przepełniony” byłby odpowiedni opis ciąg

A odnośnie możliwego sprzężenia zwrotnego do użytkownik poprzez interfejs użytkownika aplikacji, kwestia obejmuje:

... Może być także problemem w zlokalizowanych ciągów zasobów.

W artykule MSDN mowa powyżej stwierdza również:

  • Dołącz zlokalizowaną opis ciąg w każdym wyjątku. Komunikat o błędzie, który użytkownik widzi, wywodzi się z ciągu opisowego o wyjątku, który został zgłoszony, a nie z klasy wyjątków.

Również z Exception.Message Property& # x2020; na początku sekcji „Uwagi”:

komunikatów o błędach kierować dewelopera operująca wyjątek. Tekst komunikatu właściwości powinien całkowicie opisać błąd i, jeśli to możliwe, powinien również wyjaśnić, jak poprawić błąd. Najwyższego poziomu obsługa wyjątkówmoże wyświetlać komunikat użytkownikom końcowym, więc powinieneś upewnić się, że jest poprawny gramatycznie i że każde zdanie komunikatu kończy się kropką. Nie używaj znaków zapytania ani wykrzykników punktów. Jeśli aplikacja używa zlokalizowanych komunikatów o wyjątkach, użytkownik powinien upewnić się, że są one dokładnie przetłumaczone.


& # x2020; .NET Framework 4.6 i 4.5

+2

Nie mogę uwierzyć, że jedyna odpowiedź odnosząca się do oficjalnego źródła miała zero głosów! Ten powinien zostać przegłosowany, ponieważ jest zgodny z wytycznymi stackoverflow "dokumentowania" odpowiedzi. –

+0

Plus jeden do łączenia dokumentacji. – gaspard