Ruby · Essencial · Inglês · Técnico
ensure
Cláusula do begin cujo código roda sempre, com ou sem exceção. Serve para liberar recursos, como fechar arquivos e conexões.
Onde usar
Aparece ao garantir limpeza depois de abrir recursos. Em Ruby, métodos como File.open com bloco já fazem isso por você.
Em código
def ler
puts "abrindo"
raise "falhou"
ensure
puts "fechando"
end
ler rescue puts "erro tratado"Exemplos
Close the connection in the ensure clause.
Feche a conexão na cláusula ensure.
Ensure runs even when the method raises.
O ensure roda até quando o método lança exceção.
Cuidado
Evite return dentro de ensure: ele descarta a exceção em andamento e esconde o erro.
Sinônimos
finally