Ich habe vor kurzem angefangen, in Ruby zu programmieren und beschäftige mich gerade mit der Behandlung von Ausnahmen.
Ich habe mich gefragt, ob ensure
war das Ruby-Äquivalent zu finally
in C#? Sollte ich haben:
file = File.open("myFile.txt", "w")
begin
file << "#{content} \n"
rescue
#handle the error here
ensure
file.close unless file.nil?
end
oder sollte ich das tun?
#store the file
file = File.open("myFile.txt", "w")
begin
file << "#{content} \n"
file.close
rescue
#handle the error here
ensure
file.close unless file.nil?
end
Hat ensure
in jedem Fall aufgerufen werden, auch wenn keine Ausnahme ausgelöst wird?
2 Stimmen
Beides ist nicht gut. Wenn Sie mit externen Ressourcen arbeiten, sollten Sie in der Regel immer wollen, dass die Ressource "opening" innerhalb der
begin
Block.