---
title: 'Assertions müssen Nebeneffekt frei sein'
url: 'https://www.tutego.de/blog/javainsel/2013/04/assertions-mssen-nebeneffekt-frei-sein'
markdown: 'https://www.tutego.de/blog/javainsel/2013/04/assertions-mssen-nebeneffekt-frei-sein.md'
date: '2013-04-14'
description: 'Assertions stehen immer in der Klassendatei, da sie der Compiler immer in Bytecode abbildet. Die JVM ignoriert Assertions standardmäßig bei der Ausführung und eine Aktivierung erfolgt nur auf Befehl; ein Ablauf ohne Bedingungstests ist also der Normalfall. Daraus folgt, dass Ausdrücke in den assert…'
taxonomy:
  category:
    - Insel
---

# Assertions müssen Nebeneffekt frei sein

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## Assertions müssen Nebeneffekt frei sein

14.04.2013 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Assertions stehen immer in der Klassendatei, da sie der Compiler immer in Bytecode abbildet. Die JVM ignoriert Assertions standardmäßig bei der Ausführung und eine Aktivierung erfolgt nur auf Befehl; ein Ablauf ohne Bedingungstests ist also der Normalfall. Daraus folgt, dass Ausdrücke in den assert-Anweisungen ohne Nebeneffekte sein müssen. So etwas wie

```java
assert counter– == 0;
```

ist keine gute Idee, denn das Vermindern der Variablen ist ein Nebeneffekt, der nur dann stattfindet, wenn die JVM auch Assertions aktiviert hat. Allerdings lässt sich das auch für einen Trick nutzen, Assertions bei der Ausführung zu erzwingen. Im statischen Initialisierer einer Klasse können wir setzen:

```java
boolean assertEnabled = false;

assert assertEnabled = true;

if ( ! assertEnabled )

 throw new RuntimeException( "Assertions müssen aktiviert werden" );
```

Kategorien: [Insel](https://www.tutego.de/blog/javainsel/category/insel/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Mein Abendvortrag “Java 8 Features” in Braunschweig am 13. Juni](https://www.tutego.de/blog/javainsel/2013/04/mein-abendvortrag-java-8-features-in-braunschweig-am-13-juni.md)
- Next: [Assertions feiner aktivieren oder deaktivieren](https://www.tutego.de/blog/javainsel/2013/04/assertions-feiner-aktivieren-oder-deaktivieren.md)
