throw exception instead of dying