foreach在foreach本身的情况下,我有一个循环在循环中断开.有没有办法try catch抛出异常然后继续循环?
这将运行几次,直到异常命中然后结束.
try {
foreach(b in bees) { //exception is in this line
string += b;
}
} catch {
//error
}
Run Code Online (Sandbox Code Playgroud)
这根本不会运行,因为异常是在foreach的条件下
foreach(b in bees) { //exception is in this line
try {
string += b;
} catch {
//error
}
}
Run Code Online (Sandbox Code Playgroud)
我知道你们中的一些人会问这是怎么回事,所以这就是:PrincipalOperationException抛出异常是因为Principal在GroupPrincipal(蜜蜂)中找不到(我的例子中的b ).
编辑:我添加了以下代码.我还发现一个组成员指向一个不再存在的域.我通过删除该成员轻松解决了这个问题,但我的问题仍然存在.你如何处理在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) …Run Code Online (Sandbox Code Playgroud)