This is not true if you say division by 0 is undefined or +inf either. It really is totally fine.
Many languages handle this in a practical way by creating a special value "undefined", "NaN", or others that has special properties. But let's be clear that "0" is a normal number in the real number space, as so expectations about properties of real numbers are not going to hold up.
Sure, and both are bad.
> To avoid this just don't do 1 / 0 in your program.
If you're going to avoid doing it, better to have it throw an exception if you do it by accident.