Assert

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ich hab ein Problem bei einer Übung von der Uni und hab eine Musterlösung in der folgendes steht.


Code:
 public void setUserId(int userId) {
            if (userId == NONE) {
                assert this.userId != NONE;
             } else {
                [color=red]assert[/color] this.userId = NONE;
             }
             this.userId = userId;
        }

das Problem ist wenn ich diese Methode so übernehme in Eclipse, bringt Eclipse einen Fehler und zwar "Syntax error on token "assert", AssignmentOperator expected after this token". Ich hab schon hier im Forum nach ähnlichem Problem gesucht und nur gefunden aber leider nicht verstanden.
Ich wäre dankbar wenn mir einer Helfen würde.

Danke
 

Illuvatar

Top Contributor
Das in dem von dir gefunden Link bezieht sich nicht auf das Kompilieren, sondern das Ausführen, nämlich musst du später bei run->VM Arguments '-enableassertions' eintragen.

Zu deinem Code: Es müsste
Code:
assert this.userId == NONE;
heißen.

Abgesehen davon gelten Assertions als schlechter Programmierstil. Eine if-Abfrage, die eine IllegalArgumentException, IllegalStateException oder so wirft, ist eigentlich vorzuziehen.
 
G

Guest

Gast
Ne mit dem Code hat alles gestimmt, bloß hat Eclipse das assert als Fehler gesehen aber ich weiß woran das gelegen hat. An der Einstellung von Eclipse unter Windows/Preferences dann Java/Compiler.
Thx trotzdem
 

byte

Top Contributor
Illuvatar hat gesagt.:
Abgesehen davon gelten Assertions als schlechter Programmierstil. Eine if-Abfrage, die eine IllegalArgumentException, IllegalStateException oder so wirft, ist eigentlich vorzuziehen.

Naja, wenns danach geht, wozu gibt es Assertions dann überhaupt? Die haben schon ihren Nutzen. Sie sollten aber nicht für die Fehlerbehandlung verwendet werden. Zum Debuggen sind sie jedoch oftmals praktisch. In der finalen Version sollten sie natürlich deaktiviert sein.
 

Illuvatar

Top Contributor
Nun gut das stimmt natürlich. Ich wollte das nur mal allgemein gesagt haben, und der Code da oben lässt auf so was nicht viele Rückschlüsse zu.
 

byte

Top Contributor
Jo, der Code beweist mal wieder, dass nicht alles sinnvoll ist, was man an der Uni lernt. :roll:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben