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?
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!)