ExpertiDict

Ruby · Essencial · Inglês · Técnico

raise

/ɹeɪz/método

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)  # => 70

Exemplos

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.

Veja também

Todos os termos de Ruby