Error handling is for occurrences that may happen, while assertions are for 'impossible' scenarios that indicate a logic flaw in software. (by asserting something, one is saying, 'this must be true').
It's typically not possible to recover from an assertion.