Come da titolo, come potrei uscire da un metodo, utilizzando il “break”,
ovvero interrompendo l’esecuzione del metodo stesso?
Per fare un piccolo esempio
class Array
def metodo(*lista)
if(lista.size<2)
puts “mancano alcuni elementi”
Break<<
end
puts “Ci sono tutti gli elementi necessari”
end
end
Se a metodo, passo meno di 2 parametri, stampa “mancano alcuni elementi”
e poi esce da tutto il metodo. Devo ragionare come se stessi catturando
un errore?
ngw
Ho seguito alcuni esempi alla voce “raise” qui Ruby Syntax
Ma ogni volta mi restituisce un RuntimeError; posso utilizzarlo cosi?=>
if (condizione)
fai qualcosa
raise “Errore”
end
Scusa, forse non ho capito bene io, ma un bel return no?
Perché vuoi sollevare proprio un’eccezione?
Questo per quel che riguarda la tua domanda originale…
Per il resto il metodo funziona benissimo, ma guarda che l’argomento è
in entrambi i tuoi due casi di size 0: non gli passi argomenti!
prova:
a.metodo “arg1”, “arg2”
e vedi cosa ti dice.
Forse tu volevi questo:
class Array
def metodo
unless self.size >= 2
raise ArgumentError, "mancano alcuni elementi"
end
puts "Nella lista ci sono almeno 3 elementi"
end
end
ArgumentError
a parte il fatto che non funziona molto bene, testato su irb mi
restituisce sempre “mancano alcuni argomenti”. Posto qui il codice
testato (sempre su irb):
a=[1,2,3,4,5]
b=[1]
class Array
def metodo(*lista)
unless lista.size >= 2
raise ArgumentError, "mancano alcuni elementi"
end
puts "Nella lista ci sono almeno 3 elementi"
end
end
a.metodo
=>ArgumentError: mancano alcuni elementi
from (irb):4:in metodo' from (irb):25 from :0 b.metodo =>ArgumentError: mancano alcuni elementi from (irb):4:inmetodo’
from (irb):26
from :0
Ancora grazie per il vostro supporto!
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.