The documentation says:
Dividing the floating point value by zero will result in either positive infinity, negative infinity, or non-number (NaN) according to IEEE 754 arithmetic rules. Floating point operations never throw an exception. For more information, see Single and Double.
So yes, "it is guaranteed that this function never throws a DivideByZeroException." - even without any check, but it can return positive infinity, negative infinity or Not-a-Number (NaN), even if you check 0.0 , for example, when you divide a fairly large value by a very small value, the result exceeds the range, covered by double.
source share