jjzjj

DivideByZeroException

全部标签

c# - 为什么此方法返回 double.PositiveInfinity 而不是 DivideByZeroException?

我在VS2015C#交互中运行了以下代码片段,得到了一些非常奇怪的行为。>doubledivide(doublea,doubleb).{.try.{.returna/b;.}.catch(DivideByZeroExceptionexception).{.thrownewArgumentException("Argumentbmustbenonzero.",exception);.}.}>divide(3,0)Infinity>3/0(1,1):errorCS0020:Divisionbyconstantzero>varb=0;>3/bAttemptedtodividebyzero.>

c# - 可能有意重新抛出 Resharper 异常

考虑这种方法(请原谅ChuckNorris幽默的可悲尝试:)):publicclassChuckNorrisException:Exception{publicChuckNorrisException(){}publicChuckNorrisException(stringmessage):base(message){}publicChuckNorrisException(stringmessage,Exceptioncause):base(message,cause){}protectedChuckNorrisException(SerializationInfoinfo,Strea

java - 为什么用浮点(或 double )数字除以零不会抛出 java.lang.ArithmeticException :/by zero in Java

以下语句显然会抛出java.lang.ArithmeticException:/byzero。System.out.println(0/0);因为文字0被认为是一个int文字,整数运算中不允许除以零。以下情况不会抛出任何异常,例如java.lang.ArithmeticException:/byzero。inta=0;doubleb=6.199;System.out.println((b/a));它显示Infinity。以下语句毫无异常(exception)地产生NaN(非数字)。System.out.println(0D/0);//or0.0/0,or0.0/0.0or0/0.0-f

java - 为什么用浮点(或 double )数字除以零不会抛出 java.lang.ArithmeticException :/by zero in Java

以下语句显然会抛出java.lang.ArithmeticException:/byzero。System.out.println(0/0);因为文字0被认为是一个int文字,整数运算中不允许除以零。以下情况不会抛出任何异常,例如java.lang.ArithmeticException:/byzero。inta=0;doubleb=6.199;System.out.println((b/a));它显示Infinity。以下语句毫无异常(exception)地产生NaN(非数字)。System.out.println(0D/0);//or0.0/0,or0.0/0.0or0/0.0-f

c# - 有任何理由抛出 DivideByZeroException 吗?

在某些情况下,throw可以避免的错误是个好主意吗?我特别想到了DivideByZeroException和ArgumentNullException例如:doublenumerator=10;doubledenominator=getDenominator();if(denominator==0){thrownewDivideByZeroException("Youcan'tdividebyZero!");}抛出这样的错误有什么原因吗?注意:我不是在谈论捕获这些错误,而是特别要知道是否有充分的理由抛出它们。重申一下:我知道,在我给您的示例中,处理错误可能会更好。也许这个问题应该改写一