Ruby · Essencial · Inglês · Técnico
raise
Método do Kernel que lança uma exceção, interrompendo o fluxo até que um rescue a trate. Aceita uma classe, uma mensagem ou as duas.
Onde usar
Aparece ao validar entradas e sinalizar estados impossíveis. Prefira classes de erro próprias a raise com texto solto, para que quem chama consiga tratar.
Em código
class SemSaldo < StandardError; end
def sacar(saldo, valor)
raise SemSaldo, "sem saldo" if valor > saldo
saldo - valor
end
puts sacar(100, 30) # => 70Exemplos
Raise a custom error when the balance is too low.
Lance um erro próprio quando o saldo for baixo demais.
Raise with only a string creates a RuntimeError.
Raise só com uma string cria um RuntimeError.
Cuidado
Não use raise para fluxo normal do programa: exceções custam caro e confundem a leitura. Para saídas de laços aninhados, prefira catch e throw.
Sinônimos
lançar exceção, fail
Antônimos
rescue
Origem
Do inglês raise, levantar.