foreach
foreach 自体の状態でループ中に壊れるループがあります。try catch
例外をスローしてからループを続行するアイテムへの方法はありますか?
これは、例外がヒットして終了するまで数回実行されます。
try {
foreach(b in bees) { //exception is in this line
string += b;
}
} catch {
//error
}
例外は foreach の条件にあるため、これはまったく実行されません
foreach(b in bees) { //exception is in this line
try {
string += b;
} catch {
//error
}
}
これがどのように起こっているのかを尋ねる人もいることを知っているので、これを次に示します。 a (私の例では b) が(ミツバチ)に見つからないPrincipalOperationException
ため、例外がスローされています。Principal
GroupPrincipal
編集:以下のコードを追加しました。また、あるグループ メンバーが存在しないドメインを指していることもわかりました。メンバーを削除することでこれを簡単に修正しましたが、私の質問はまだ残っています。foreach の条件内でスローされた例外をどのように処理しますか?
PrincipalContext ctx = new PrincipalContext(ContextType.domain);
GroupPrincipal gp1 = GroupPrincipal.FindByIdentity(ctx, "gp1");
GroupPrincipal gp2 = GroupPrincipal.FindByIdentity(ctx, "gp2");
var principals = gp1.Members.Union(gp2.Members);
foreach(Principal principal in principals) { //error is here
//do stuff
}