http://avdi.org/talks/exceptional-ruby-rubyconf-2011/exceptional-ruby.html
Ciao,
Giusto per fare un paragone con un error handling moderno, in .net si
usa il throw per passare un eccezione da una parte all’altra, in ruby
cambia poco:
begin
rescue
raise $!
end
in ruby il throw ha un funzionamento diverso che per una questione di
abitudine (forse cattiva) non ho mai usato
begin
rescue
throw :ciccia
end
catch :ciccia do
end
non ho capito invece il motivo di generare una nuova eccezione tanto
meno sapevo fosse una pratica molto comune
2011/10/3 Marco M. [email protected]:
Giusto per fare un paragone con un error handling moderno, in .net si
usa il throw per passare un eccezione da una parte all’altra, in ruby
cambia poco:
begin…
rescue
fa qualcosa
raise $!
end
puoi anche fare “raise” senza parametri, prende da se il $!
in ruby il throw ha un funzionamento diverso che per una questione di
abitudine (forse cattiva) non ho mai usato
il throw sostanzialmente un goto (o un “super-break”), con tutti i
pro e i contro… Ha un senso se quello che vuoi una forma di early
termination che restituisca un valore, saltando a pi pari il codice
che c’ intorno, piuttosto che quando vuoi segnalare un errore.
–
twitter: @riffraff
blog (en, it): www.riffraff.info riffraff.blogsome.com
work: cascaad.com www.circleme.com
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs