I throw errors (it's appropriate to stop code execution). But I also log it, so I can see it historically, but now I also do a 3rd thing!
I invoke a programmable breakpoint, so that if I happen to be debugging that code, I get the debugger setup where I want it!
Note this is only appropriate for things that should "never" happen.