Ho creato un modulo personalizzato (che attualmente definisce solo una nuova classe Exception), e metterlo sotto lib/lib_th.rb
Definizione eccezione personalizzata in un modulo in Rails
module LibTH
module Error
IDNotFound = Class.new
end
end
non avrei bisogno di richiedere/includere la modulo nel mio codice, in quanto dovrebbe essere caricato automaticamente, poiché segue le convenzionali regole di denominazione.
ma quando provo e sollevare l'eccezione IDNotFound
da qualche parte nel mio codice:
res.size == 0 ? raise LibTH::Error::IDNotFound : res
ottengo l'errore follwoing:
SyntaxError (/Users/lrnz/code/ruby/corinna/app/models/treasure_hunt.rb:49: syntax error, unexpected tCONSTANT, expecting kDO or '{' or '('
res.size == 0 ? raise LibTH::Error::IDNotFound : res
^
/Users/lrnz/code/ruby/corinna/app/models/treasure_hunt.rb:49: syntax error, unexpected ':'
res.size == 0 ? raise LibTH::Error::IDNotFound : res
^):
app/controllers/treasure_hunts_controller.rb:50:in `show'
La cosa strana è che ho incontrato nessun problema cercando di raccogliere l'eccezione in script/console
:
>> raise LibTH::Error::IDNotFound
LibTH::Error::IDNotFound: LibTH::Error::IDNotFound
from (irb):70
Tha NKS!