So überspringen Sie einen Datensatz in einem Foreach

7

Ich versuche, ein Objekt aus einer Active Directory-Basis bei einer einfachen Anmeldung zu erstellen. Das Problem ist, dass einige der Anmeldeinformationen gültig sind.

Wie kann ich einen try-catch verwenden, damit bei einer ausgelösten Ausnahme einfach zum nächsten Login gesprungen wird?

Hier ist der Code:

%Vor%

Die Pause bringt mich aus dem foreach , was ich nicht will. Irgendwelche Ideen?

    
Polo 09.06.2009, 12:30
quelle

6 Antworten

30

Sie suchen nach weiter

%Vor%     
Joseph 09.06.2009, 12:31
quelle
13

Verwenden Sie stattdessen die continue -Anweisung:

%Vor%

(Ich habe ein paar Änderungen in Bezug auf die Variable casing vorgenommen, indem ich die Verwendung eines massiv langen, voll qualifizierten Namens für die Ausnahme vermieden und eine Variable für die Ausnahme bereitgestellt habe, die Sie dann ignorieren.)

Beachten Sie, dass es sinnvoller wäre, eine Liste gültiger Benutzer zu erhalten und sie zu überprüfen, als wenn Sie hier die Ausnahme für die Ablaufsteuerung verwenden würden. Es ist vielleicht nicht machbar, aber es lohnt sich zu überprüfen:)

    
Jon Skeet 09.06.2009 12:31
quelle
5

Sie müssen continue;

verwenden     
tanascius 09.06.2009 12:31
quelle
5

Verwenden Sie die continue -Anweisung, um zur nächsten Iteration zu springen.

    
TheTXI 09.06.2009 12:32
quelle
1

Statt eine Ausnahme auszulösen, sollten Sie stattdessen versuchen, zu prüfen, ob der Benutzer zuerst gültig ist. Das Auslösen von Exceptions ist ziemlich teuer und sollte eigentlich nur unter "außergewöhnlichen" Umständen verwendet werden und nicht um den logischen Fluss der App zu kontrollieren. Sie sollten nicht verwendet werden, da einige Benutzer einen Fehler erwarten.

    
Simon P Stevens 09.06.2009 12:35
quelle
0

Warum nicht nichts verwenden, anstatt weiterzumachen?

Verwenden Sie stattdessen die continue-Anweisung:

%Vor%

oder setzen Sie ein

%Vor%     
Crash893 09.06.2009 13:51
quelle

Tags und Links