Laden...

Automatisch Endlosrekursionen finden

Erstellt von JMano vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.237 Views
J
JMano Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren
Automatisch Endlosrekursionen finden

Gibt es ein tool, dass das automatisch den Code durchsucht und aufspürt?
Klar, alle und so wird es nicht finden.

Aber ich hatte letztens einen ziemlich üblen Schnitzer, bei dem ich enttäuscht war, dass das nicht aufgefallen ist:

Beim Refraktoren eines Fields zu Properties:
Hat der Getter dann nicht das field zurück gegeben, sondern sich selbst ….
Ganz offensichtlich ein Fehler .. Endlosschleife ? thread in overflow state …

StyleCop, FxCop & Resharper ist das scheinbar nicht aufgefallen (ich weiß ist nicht Style …).
Gibt es da irgend ein tool das code auf solche doch ziemlich einfachen aber tötlichen Fehler abklopft, … ?

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo JMano,

ein Tool kenne nicht das Endlosrekursion entdeckt, aber ich kann dir zu Unit-Tests raten - damit lässt sich das auch vorzeitig feststellen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

731 Beiträge seit 2006
vor 10 Jahren

Hi.

Also der ReSharper erkennt solche Konstrukte in der Regel und gibt einen "Recursive Call"-Hint.

Wundert mich...

MfG
wax

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo JMano,

mich wundert es auch, dass die Tools das nicht können sollen.

Aber selbst wenn, kann man bei den Tools meistens eigene Regen definieren.

BTW:

Öffentliche Felder sollte man von Anfang an vermeiden.

Wenn man ein Feld durch eine automatische Property ersetzt, kann es gar nicht zu einer Endlosrekursion kommen.

Wenn man ein Feld mittels eines Refactoringtools durch eine normale Property ersetzt, dürfte es nicht zu einer Endlosrekursion kommen, zumindest wenn das Refactoringtools korrekt ist.

Wenn man den Fehler mit der Endlosrekursion einmal gemacht hat, ist man für die Zukunft normalerweise ausreichend sensibilisiert.

herbivore