ExpertiDict

Ruby · Essencial · Inglês · Técnico

ensure

/ɛnˈʃʊɹ/palavra-chave

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

Veja também

Todos os termos de Ruby