throws RuntimeError instead of exiting