Ciao a tutti, vorrei se possibile, un aiuto da voi riguardante la
gestine delle eccezzioni in ruby, il mio quesito è come posso uscire da
una serie di chimate a metodi in maniera da non eseguire il codice che
viene dopo il metodo chiamato che ha sollevato l’eccezzione, senza però
uscire dal programma, perchè questo è compposto da una gui scritta in
GTK, che dovrebbe solo aprire il messaggio d’errore ma lasciare la gui
aperta.
Per semplicità e maggiore chiarezza vi ho scritto due righe di codice
per dare l’idea di quello che sto cercando:
In questo caso le chiamte a metodi sono poche è riuscirei a gestirle
facilmente con un dei return, ma se il mio three di chimate fosse molto
piu lungo come posso uscire da tutte le chiamate senza uscire dal
programma.
Ciao Michele,
non capisci come dovrebbe funzionare a livello ruby, o un problema a
livello GTK? In linea di massima sufficiente mettere una rescue nel
metodo pi esterno, no? Al lancio delleccezione, a prescindere dalla
profondit dello stack di metodi, vai a finire diritto sul primo rescue
che viene trovato.
Grazie per la risposta, il problema non è a livello di GTK.
Comunque con il suggerimento che mi hai dato credo che tu intendessi
questo:
class Cane
def ciao
puts “ciao”
begin
come_ti_chiami
rescue Exception => e
puts e.message
return
end
puts “questa parte di codice non deve essere eseguita”
end
def come_ti_chiami
puts “come ti chiami”
abbaia
puts “questa parte di codice non deve essere eseguita”
end
def abbaia
1.upto(100) do |i|
raise “Error nel metodo abbaia” if i == 10
puts ‘Bau Bau!!’
end
end
end
cane = Cane.new
cane.ciao
Perfetto, funzionare funziona!!! Secondo voi questo è il modo più
elegante per gestire tale circostanza.