throw exception instead die.