I don’t have an answer but why check for a specific error at this point and just assume that the error handler means the cart is empty. I did have a thought about assigning a visitor a role called say empty cart and if this role is assigned then the cart is empty.
when a product is added the cart will be created and an event fired And there you can assign a role called notemptycart. you Would have to check for no role assigned or a default role before doing the assignments. have not really thought through it but it might give you an idea. The problem is the cart does not exist when you check for it and maybe the error handler is the best approach. good luck