We should emit "error" events rather than throwing uncatchable exceptions