added more throw exception