Why is 0 divided by 0 throwing an overflow error in VBA?
Besides the obvious differences in implementation of languages and the way VBA
handles division
, MS Doc link above expands on the reasons for overflow exception
, that if the operand data types are integer then it will throw Overflow exception
(Last statement below)
Alternatively there is \
division operator that checks the range for you and throws Division by zero
exception
Will try to summarize the answers from the comments:
In VBA 0/0 throws an Overflow exception, because 0/0 is a specific case of division by 0. Thus, it is a good idea to throw a different exception than the standard
Division by zero error
.In VBA
Evaluate("0/0")
returns aDivision by zero error
, because Evaluate does not raise an error, it returns a Variant value with an error flag, and there is no "overflow" flag available.In VBA integer division 0\0 returns a
Division by zero error
, because the result should be an integer value and #IND is a floating point value. As far as #IND cannot be returned, it gives the next best thing -Division by zero error
.
More reading concerning 0/0 in other languages: