I know before checking error, u have to call `valid?` but there are various ways of testing it giving no error like that. why would u choose this way?