try...finally doesn't seem to work correct when they are used without 
catch clause:

try {
        // Open resources
        // Error happens and get swallowed here instead of propagated
         //     after doing finally block
        ...
} finally {
        // Clean up resources
}

---------

using GLib;

public static class TryFinallyTest {

        private static void method () throws Error {
                try {
                        print ("before exception\n");
                        throw new Error (Quark.from_string ("quark"), 42, 
"generated exception");
                        print ("after exception\n");
                } finally {
                        print ("doing finally block\n");
                }
        }

        public static int main (string[] args) {
                try {
                        method ();
                        print ("returned without exception\n");
                } catch (Error e) {
                        print ("returned with exception\n");
                }

                return 0;
        }
}

result:
-------
before exception

** (process:17924): CRITICAL **: file try-finally-test.c: line 20: 
uncaught error: generated exception
after exception
doing finally block
returned without exception

expected:
---------
before exception
doing finally block
returned with exception


Regards,

Frederik
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to