How would you write a finally clause in C++?

Tom Tromey
Sun May 27 12:29:00 GMT 2001

>>>>> "Erwin" == Erwin Bolwidt <> writes:

Erwin> I hope this is the right list to ask.  When you want to write a
Erwin> try {} finally {} clause in C++ in a CNI method, how would you
Erwin> do that?

It might not be the right list.  General C++ questions should be
referred elsewhere, probably one of the C++ newsgroups.

Erwin> I've searched through the source of gcc/java and gcc/expr.c,
Erwin> and I found support for TRY_FINALLY in the compiler support
Erwin> file gcc/expr.c; so it should be accessible for the C++
Erwin> compiler, right?

No, not necessarily.  Trees have to support the union of all the
languages supported by gcc.  That doesn't mean that all supported
languages can generate all supported tree types.

Erwin> So how would you write a CNI method that does the same as this
Erwin> Java method:
Erwin> void method()
Erwin> {
Erwin>     Writer w = new FileWriter(FILE);
Erwin>     try {
Erwin>        w.write("something".toCharArray());
Erwin>     }
Erwin>     finally {
Erwin>        w.close();
Erwin>     }
Erwin> }

One approach would be to introduce a new class and put the cleanup
code in the destructor.


More information about the Java mailing list