Es tritt keine Ausnahme auf, wenn Java double durch Null geteilt wird

Ich habe Enum in Effective Java studiert und einen Test geschrieben, um festzustellen, ob Enum wie erwartet war, also wurde ich ein wenig süchtig danach.

Enum habe ich geschrieben

public enum Operator {

 // Es gibt auch PLUS.
    DIVIDE("/") {
        double apply(double x, double y) { return x / y; }
    };
    private final String symbol;
    Operator(String symbol) { this.symbol = symbol;}
    @Override public String toString() { return symbol;}
    
        abstract double apply(double x, double y);
}

Erstellen Sie eine Testklasse für diese Klasse

public class OperatorTest {

    @Rule
    public ExpectedException thrown = ExpectedException.none();
    
    @Test
    public void zeroDivide() {

        thrown.expect(ArithmeticException.class);
       }
}

Im Test durchgefallen. Ich habe beiläufig einen Test geschrieben, in dem ich dachte, dass eine Ausnahme auftritt, wenn ich durch 0 dividiere. Selbst wenn Sie den Doppeltyp durch 0 teilen, tritt keine Ausnahme auf.

Auf diese Weise wird es passieren.

@Test
public void zeroDivide() {
    assertThat(Operator.DIVIDE.apply(11, 0), is(Double.POSITIVE_INFINITY));
}

Recommended Posts

Es tritt keine Ausnahme auf, wenn Java double durch Null geteilt wird
[Java] Wirf eine Ausnahme aus
Der Java Integer-Vergleich (==) funktioniert nicht richtig