What's A Robust Program? Can recover from expected error conditions (e.g. network intermittent failures, Missing configuration files). Can recover from unexpected error conditions (e.g. file system full, our of disk quota, name lookup failures, not enough resources to draw a window). When there is an unrecoverable error - notifies the user of the situation and cleanly shuts down. Avoids dependency on robustness of related processes (a client should not crush because a server sent a garbled reply, and vice versa).