# Begin.rescue

**URL:** <https://www.ruby-forum.com/t/begin-rescue/207163>\
**Category:** IT\
**Created:** [May 19, 2011, 6:12pm UTC](https://www.ruby-forum.com/t/begin-rescue/207163 "2011-05-19T18:12:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [May 19, 2011, 6:12pm UTC](https://www.ruby-forum.com/t/begin-rescue/207163/1 "2011-05-19T18:12:50Z")

</div>

in un blocco begin rescue ho:  
lines.each do |row|  
begin  
practice\_date = parse\_date\_string(row[3])  
practice\_new\_date = parse\_date\_string(row[3])  
inspection\_date = parse\_date\_string(row[7])  
intervention\_date = parse\_date\_string(row[9])  
remove\_date = parse\_date\_string(row[13])  
notification\_date = parse\_date\_string(row[14])  
expiry\_date = parse\_date\_string(row[15])  
rescue  
# se la data non e’ valida inserisci un valore nullo  
remove\_date = notification\_date = expiry\_date = inspection\_date =  
nil  
intervention\_date = practice\_date = practice\_new\_date\_date = nil

Nel begin, al primo errore va alla rescue?  
Nel senso, se practice\_date non viene valorizzato perche’ row[3]  
contiene una stringa non valida, in questo caso mi mette tutti a nil e  
non valorizza le successive variabili?  
Se e’ cosi’ devo fare un begin rescue per ogni variabile?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [May 19, 2011, 6:23pm UTC](https://www.ruby-forum.com/t/begin-rescue/207163/2 "2011-05-19T18:23:58Z")

</div>

2011/5/19 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> rescue
> 
> # se la data non e’ valida inserisci un valore nullo
> 
> remove\_date = notification\_date = expiry\_date = inspection\_date = nil  
> intervention\_date = practice\_date = practice\_new\_date\_date = nil
> 
> Nel begin, al primo errore va alla rescue?

Si, assolutamente! non avrebbe troppo senso terminare il blocco visto  
che c’e’ stata una eccezione

> Nel senso, se practice\_date non viene valorizzato perche’ row[3]  
> contiene una stringa non valida, in questo caso mi mette tutti a nil e  
> non valorizza le successive variabili?  
> Se e’ cosi’ devo fare un begin rescue per ogni variabile?

Si ma la puoi scrivere in modo compatto cosi’ (per ogni riga)

a = parse\_date(val) rescue nil

(se proprio non te ne frega niente del fatto che hai delle date non  
parsabili nell’input!)

Ciao

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [May 19, 2011, 6:26pm UTC](https://www.ruby-forum.com/t/begin-rescue/207163/3 "2011-05-19T18:26:26Z")

</div>

2011/5/19 Luca De Marinis [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Si ma la puoi scrivere in modo compatto cosi’ (per ogni riga)
> 
> a = parse\_date(val) rescue nil

Quante cose si imparano.
