# Interessanti slide sull'exception handling

**URL:** <https://www.ruby-forum.com/t/interessanti-slide-sullexception-handling/212442>\
**Category:** IT\
**Created:** [October 3, 2011, 10:37am UTC](https://www.ruby-forum.com/t/interessanti-slide-sullexception-handling/212442 "2011-10-03T10:37:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [October 3, 2011, 10:37am UTC](https://www.ruby-forum.com/t/interessanti-slide-sullexception-handling/212442/1 "2011-10-03T10:37:46Z")

</div>

[http://avdi.org/talks/exceptional-ruby-rubyconf-2011/exceptional-ruby.html](http://avdi.org/talks/exceptional-ruby-rubyconf-2011/exceptional-ruby.html)

Ciao,

---

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e495f1/32.png) [@Gian\_Carlo\_P](https://www.ruby-forum.com/u/Gian_Carlo_P)\
**Post date:** [October 3, 2011, 3:42pm UTC](https://www.ruby-forum.com/t/interessanti-slide-sullexception-handling/212442/2 "2011-10-03T15:42:50Z")

</div>

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

in ruby il throw ha un funzionamento diverso che per una questione di  
abitudine (forse cattiva) non ho mai usato  
begin

# …

rescue

# fa qualcosa

throw :ciccia  
end

catch :ciccia do

# …

# si verifica l’errore

# … codice non eseguito in caso di errore

end

non ho capito invece il motivo di generare una nuova eccezione tanto  
meno sapevo fosse una pratica molto comune

---

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e495f1/32.png) [@Gian\_Carlo\_P](https://www.ruby-forum.com/u/Gian_Carlo_P)\
**Post date:** [October 4, 2011, 8:06am UTC](https://www.ruby-forum.com/t/interessanti-slide-sullexception-handling/212442/3 "2011-10-04T08:06:59Z")

</div>

2011/10/3 Marco M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 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](http://riffraff.blogsome.com)  
work: [cascaad.com](http://cascaad.com) [www.circleme.com](http://www.circleme.com)
