I'd be opposed of this.
If GC runs out of memory it means that even some basic built-in language construct may have failed (e.g. allocating a closure).
Thus it's critical and ERROR not excpetion.
When malloc returns 0 it's just this object can't be allocated and is a normal kind of thing if C heap is exhausted (=EXCEPTION).