scope() and FileConduit (D1 and Tango)

Jarrett Billingsley jarrett.billingsley at
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

More information about the Digitalmars-d-learn mailing list