Das Ausführen des folgenden C # -Codes durch NUnit ergibt
%Vor%Entweder wird keine DivideByZeroException ausgelöst, oder NUnit fängt sie nicht ab. Ähnlich wie diese Frage, aber die Antworten, die er bekam, tun scheint nicht für mich zu arbeiten. Dies verwendet NUnit 2.5.5.10112 und .NET 4.0.30319.
%Vor%Irgendwelche Ideen?
Es wird keine Ausnahme ausgelöst. 1 / 0.0 gibt Ihnen einfach double.PositiveInfinity. Dies ist, was der IEEE 754 Standard spezifiziert, welcher C # (und im Grunde jedes andere System) folgt.
Wenn Sie eine Ausnahme im Fließkomma-Divisionscode wünschen, prüfen Sie explizit auf Null und werfen Sie es selbst. Wenn Sie nur sehen wollen, was DivideByZeroException Ihnen bringt, werfen Sie es entweder manuell oder teilen ganze Zahlen durch Ganzzahl Null.
Von MSDN :
Die Ausnahme, die ausgelöst wird, wenn versucht wird, einen Integral- oder Dezimalwert durch Null zu teilen.
Sie haben es mit double,
nicht mit den ganzzahligen Typen ( int
etc) oder decimal
zu tun. double
löst hier keine Ausnahme aus, auch nicht in einem checked
-Kontext. Du bekommst einfach + INF.
Wenn Sie als ganzzahlige Mathematik (und erhalten Sie die Ausnahme) auswerten möchten, verwenden Sie:
%Vor%Tags und Links c# nunit zero division dividebyzeroexception