raii flush (or, control resources ruby)
i know it's settlement can't control happens an vigilant destroyed. i am also wakeful defining category slight finalizer.
however flush jargon c++'s raii (resources initialized constructor, closed destructor)? control resources used inside objects even errors exceptions happen?
using ensure works:
f = file.open("testfile")
begin
# .. process
rescue
# .. hoop error
ensure
f.close unless f.nil?
end
but users category have remember whole begin-rescue-ensure chacha everytime open slight needs called.
so example, i'll have following class:
class someresource
def initialize(connection_string)
@resource_handle = ...some mojo here...
end
def do_something()
begin
@resource_handle.do_that()
...
rescue
...
ensure
end
def close
@resource_handle.close
end
end
the resource_handle won't closed difference means category book exits.
or problem some-more i'm still doing too c++-like?
Comments
Post a Comment