Handle errors when you can do something about them:
Retry the operation. Use a default value. Log and continue.
Return errors when you can't recover:
The caller has more context. The operation is critical. You don't know how to proceed.
Most errors should be returned, not handled immediately.