1. Exceptions are class instances, hence (by default) are allocated on GC heap. This is wrong default, GC is no place for temporaries.
This isn't accurate. GC is inherent to the `new` operator, not to classes.
void risef(T...)(string fmt, T args)
raise*?
