+/** A `va_list` variant of @trans_throw(). **/
+void trans_vthrow(const char *id, void *object, const char *fmt, va_list args) NONRET;
+
+/** Throw an already constructed exception (or re-throw an exception you have caught). **/
+void trans_throw_exc(struct exception *x) NONRET;
+
+/** Declare the current exception caught and roll back the current transaction. Called from `TRANS_END`. **/
+void trans_caught(void);
+
+struct exception *trans_current_exc(void); /** Return the exception in flight, or NULL if there is none. **/