On the other hand, careful programmers also follow these rules:
pWhen you write a method, you should make every effort to detect when a precondition has been violated. pIf you detect that a precondition has been violated, then print an error message and halt the program...
p...rather than causing
p    a disaster.
And such detections can also avoid disasters.