scope() and FileConduit (D1 and Tango)

Jarrett Billingsley jarrett.billingsley at gmail.com
Fri Oct 3 15:08:00 PDT 2008


On Fri, Oct 3, 2008 at 4:57 PM, Nick Sabalausky <a at a.a> wrote:
> I'd like some clarification on the way scope() works, and also Tango's
> FileConduit. In the following function:
>
> void load(char[] infilename)
> {
>    auto file = new FileConduit(infilename);
>    scope(exit) file.close();
>
>    // Load data
> }
>
> What happens if infilename doesn't exist? Does FileConduit's constructor
> throw an exception? If so, file.close() isn't called, is it?

Yes, the ctor throws an exception.  No, file.close is never called.
scope statements are only executed if execution reaches them
successfully.


More information about the Digitalmars-d-learn mailing list