Dividing by zero is not chaotic (which is a word with a particular meaning in mathematics), it is an undefined operation. One can define a division by zero, and extend the real number system in order to accommodate some 'infinite' values, but this destroys the algebraic structure of the reals.
Incidentally, at a low level, languages such as C actually do define NULL and 0 as the same thing. At a higher level of abstraction, NULL is supposed to mean something different to 0 (namely a pointer). There is a similar idea in mathematics, where many constructions of the natural numbers define the number 0 as the empty set, while in other contexts, it doesn't make sense to interpret the empty set as 0, and there are other ways one could define the number 0. This is something that model theory takes to all sorts of interesting places.