Lines Matching full:exception

1 Meeting notes: Implementation idea: Exception Handling in C++/Java
20 an exception is thrown by func (or if we are in a try block).
57 used to implement the C++ exception model:
70 // execution continues after the try block: the exception is consumed
73 throw; // Exception is propagated
86 call foo() with fooCleanup // An exception in foo is propagated to fooCleanup
87 call bar() with barCleanup // An exception in bar is propagated to barCleanup
93 call baz() with bazCleanup // An exception in baz is propagated to bazCleanup
102 what we want for zero cost (when unused) exception handling. Especially on
103 platforms with many registers (ie, the IA64) setjmp/longjmp style exception
109 TryCleanup: // Executed if an exception escapes the try block
111 barCleanup: // Executed if an exception escapes from bar()
113 fooCleanup: // Executed if an exception escapes from foo()
116 Exception *E = getThreadLocalException()
120 implemented by the C++ support library. It returns the current exception
127 The bazCleanup label is more interesting. Because the exception may be caught
139 that actually determines the type of exception, based on the Exception object
140 itself. For this discussion, assume that the exception object contains *at
147 Note that it is necessary to maintain #1 & #2 in the exception object itself
152 Exception *E = getThreadLocalException();
159 goto TryCleanup // This catch block rethrows the exception
162 goto TryCleanup // Exception not caught, rethrow
165 // Exception was consumed
175 function throw(Exception *E) {
195 That's a brief rundown of how C++ exception handling could be implemented in
201 It would be trivial to get exception interoperability between C++ and Java.