Catch errors, don’t ignore them
“Print message and fail” is not always good
Especially in APIs
Need to allow programs to recover or save data
Detect at low level, but handle at high level
Generally, error should be handled by calling routine
The callee can leave things in a “nice” state for recovery, though
Keep things usable in case the caller can recover