2010-06-06 14 views
12

Zauważyłem, że w hierarchii wyjątków Ruby występują "błędy", takie jak ArgumentError i są "wyjątki", takie jak SignalException. Czy istnieje pewna praktyka nazywania wyjątków? z góry dzięki, ell.Wyjątek lub błąd ruby?

+1

http://stackoverflow.com/questions/912334/differences-betweeen-exception-and-error ma dobry opis różnic między wyjątkami i błędami, aczkolwiek w przypadku języka innego niż ruby. –

+0

Dzięki, że trochę wyjaśniłeś! – Ell

Odpowiedz

8

Patrząc na the list of Ruby exceptions, SignalException jest jedynym o nazwie *Exception; wszystko inne to XXXError (z wyjątkiem SystemExit i fatal). Jeśli cokolwiek, praktyka polega na nazwij swój wyjątek FooError. Mam problem ze znalezieniem konkretnego powodu, dla którego SignalException nie ma nazwy SignalError.

5

Konwencja to Module::#{Type}Error z dowolnego powodu spowodowanego przez aplikację (np. http://weblog.jamisbuck.org/2007/3/7/raising-the-right-exception). Obsługa wyjątków w Rubim nie jest warstwowana w taki sam sposób, jak w Javie, ponieważ model wyjątku jest inny na poziomie języka.

Z tego, co widziałem, konwencje są nieco luźniejsze dla rozszerzeń C/FFI/JNA.

Powiązane problemy