10.2 契约式设计和防御式编程