The example
int rc = fx ();
if (rc != 0)
handle_error ();
can be simply converted into ASM ; call fx() and copy to acc
JNZ handle_error
; rest of code
handle_error:
; code of handle_error()
whereas exceptions in C++ need to generate a lot more code than this