Gibt es eine Möglichkeit, eine Java-Methode zu markieren (z. B. mit Anmerkungen zu versehen), da sie niemals zurückkehrt?

8

Ich habe gerade mit der neuen Eclipse 4.2 (Juno) Nullanalyse begonnen.

Auf Code wie folgt:

%Vor%

Ich bekomme Warnungen, dass x null sein kann. Aber es kann nicht sein, denn Versagen scheitert immer und kommt daher nie zurück. (Bei besserer interprozeduraler Analyse könnte dies vermutlich automatisch festgestellt werden, scheint aber derzeit nicht zu funktionieren.)

Offensichtlich gibt es Möglichkeiten, den Code umzuschreiben, um die Warnung zu umgehen, aber ich möchte eine Art und Weise angeben (z. B. eine Anmerkung), dass der Fehler niemals zurückkehrt.

Ich habe auch versucht, die Warnung mit @SuppressWarnings ("null") zu unterdrücken, aber das hat nicht funktioniert.

Eine Möglichkeit, die Warnung loszuwerden, besteht darin, Folgendes hinzuzufügen: assert x != null; (vorausgesetzt, Sie haben die Einstellung aktiviert, um Behauptungen in die Nullanalyse aufzunehmen)

In GCC C ++ kann ich tun: void fn __attribute__ ((noreturn))

    
Andrew McKinlay 28.06.2012, 17:07
quelle

2 Antworten

11

Eine halbtraditionelle Art, dies zu tun, ist wie folgt:

%Vor%

, damit Sie throw fail("x is null") schreiben können. Natürlich wird fail immer zum Werfen führen, nicht throw , aber es genügt, den Compiler zu beruhigen, den diese Zeile immer wirft.

    
Louis Wasserman 28.06.2012, 17:12
quelle
0

Hast du org.eclipse.jdt.annotation.Nullable Annotation probiert?

  

Ссылка

    
Gergely Szilagyi 28.06.2012 17:12
quelle

Tags und Links