Entwickler-Ecke

Sonstiges (.NET) - Implementierung von Programmsprüngen


Motz - Fr 16.03.12 15:59
Titel: Implementierung von Programmsprüngen
•ich habe eine Methode A() mit einer for-Schleife, die ein Array durchläuft und auf die Elemente mehrere Methoden in verschiedener Verschachtelung aufruft
•B(), C(), D() und E() sollen in bestimmten Situationen die aktuelle Methode A() komplett abbrechen und neu starten
•es handelt sich also um eine Form von Rekursion

Beispiel:

A() -> B()
A() -> B() -> C()
A() -> B() -> D()
A() -> B() -> D() -> E()

Ich komme hierbei nur auf Exceptions, denn A() soll ja abgebrochen und danach neu aufgerufen werden. Kann man aus einem
Catch-Block einer Exception auch direkt eine übergeordnete Methode abbrechen und neu starten? Sonst müsste man ja jede Methode mit einem try-catch-Block versehen und die Exception weiterleiten bis zu A()… was den Code ja unübersichtlich macht.

Exceptions sollen ja eigentlich auch nur für Fehler verwendet werden und nicht für den Programmablauf. Wie würdet Ihr so etwas verwirklichen? Denn Sprungmarken gibt es in C# ja nicht!


PantherX - Fr 16.03.12 16:04

Hallo Motz,

ich hoffe ich habe dein Problem richtig verstanden.

Wie wäre es, den Methoden einen boolschen Rückgabewert zu geben.
In die jeweiligen Catch Blöcke könntest du dann False zurückgeben und somit
angeben ob eine Funktion erfolgreich war oder nicht. Dann hast du auch nur einmal die Exception und der Rest wird sauber abgearbeitet.

Beste Grüße


Th69 - Fr 16.03.12 18:22

Hallo Motz :welcome:

bitte Crossposts immer angeben: myCSharp.de - Realisierung von Sprungmarken über mehrere Methodenaufrufe hinweg [http://www.mycsharp.de/wbb2/thread.php?threadid=102272]