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?
12
A
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.
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. –
Dzięki, że trochę wyjaśniłeś! – Ell