Lionello Lunesu wrote:
On 2-3-2010 20:44, bearophile wrote:
What do you think? Do you agree that's better to use exceptions like this to 
test arguments in public methods (instead of using asserts in preconditions)?

I agree with you. I also prefer exceptions for illegal argument values.
I test them with asserts only in private methods.

No! No! No! Design-by-contract means that it is the application's duty to make sure that argument values are correct. If the program is correct, the library can trust that the argument values are correct and does not need to do checks. This is exactly the same situation that assertions are for: Double-checking something to catch potential bugs.

Exceptions are a very different issue and should never be used for this purpose.

A library interface simply is something different than a user interface.

Reply via email to