I have a Prize object that has a constructor with a single int parameter pence. I don't want ot allow negative values to be passed in. What is the best way to enforce this restriction? Shall I throw an exception from constructor? Or write a factory method?
EDIT: The Prize object was used as an example of a general role. Using uint is a good answer in this specific example not as a general role. I use 3.5 without additional code contracts libraries.