循环体内出现异常如何继续循环 foreach (FileInfo file in files) { this.textBox2.Text = "正在删除:" + file.FullName; file.Delete(); //有些文件不能删除,会出现异常,加上异常处理,会导致循环不能继续了,怎么解决? } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 即是说使用try 和 catch,会跳出循环了 最好在删除文件之前做个判断 if (File.Exists(path)) File.Delete(path); foreach (FileInfo file in files) { this.textBox2.Text = "正在删除:" + file.FullName; try { file.Delete(); } catch { } }//某一次循环出现异常,下一次就不能继续 foreach (FileInfo file in files) { this.textBox2.Text = "正在删除:" + file.FullName;try{ file.Delete();}catch{} //有些文件不能删除,会出现异常,加上异常处理,会导致循环不能继续了,怎么解决? } 在finally中写一个continue试试,没用过。 我做了个实验 List<Button> list = new List<Button>(); list.Add(b); list.Add(b1); foreach (Button btn in list) { try{ throw new Exception("test"); } catch { } }这样是没问题的,你的问题是出现在删除那或者try以外了,代码没贴全 用try怎么可能会跳出循环?? 把出错的位置,TRY下就行了,它会接着执行下一个 在catch里边continue;或break; 写个单独的方法删除文件试下,在这个方法里处理掉异常后继续,private bool DeleteFile(FileInfo file){ try{ file.Delete();return true; }catch{ return false;}}foreach (FileInfo file in files) { this.textBox2.Text = "正在删除:" + file.FullName; if(!DeleteFile(file )) this.textBox2.Text = "文件" + file.FullName+“删除失败!”; }试下,我自己也没验证过,呵呵。 try catch 捕获异常处理如果你不做特殊处理 是不会跳出循环便利的 还会继续循环这里我想你的意思是指循环报错终止了循环便利 没有把后面能够正常删除的删除如果不想被客户知道 那么就写入log如果需要被知道你就可以在catch里对捕捉到的异常进行处理了 foreach (FileInfo file in files){ try { if (!file.Exists) { textBox2.Text += "File: " + file.FullName + "...Not Exists!" continue; } textBox2.Text += "Deleteing:" + file.FullName; file.Delete(); textBox2.Text += "...OK!\r\n"; } catch (System.Exception pe) { textBox2.Text += "...NG!\r\n"; textBox2.Text += "Error Message: " + pe.Message + "\r\n"; }} C++builder调用C#创建的动态库 gridView列清空数据报输入格式有问题 RPC 服务器不可用 关闭非模态对话框的小问题 C#如何用正则表达式过滤网页的JavaScript代码? c#中ToolStripButton的Image属性问题 存储过程问题 大家关注一下!!急急急急急急急 聊天程序如何在广域网上运行?附完整源代码 同页面显示不同内容,不用框架可以实现吗? 用数据适配器出现的问题,高手请进!!! 跪求用C#调用扫描仪的方法(急急急!!在线等) 问一个关于线程池的问题
做个判断
if (File.Exists(path))
File.Delete(path);
foreach (FileInfo file in files)
{
this.textBox2.Text = "正在删除:" + file.FullName;
try
{
file.Delete();
}
catch
{ }
}//某一次循环出现异常,下一次就不能继续
foreach (FileInfo file in files)
{
this.textBox2.Text = "正在删除:" + file.FullName;
try
{
file.Delete();
}
catch{}
//有些文件不能删除,会出现异常,加上异常处理,会导致循环不能继续了,怎么解决?
}
list.Add(b);
list.Add(b1);
foreach (Button btn in list)
{
try{
throw new Exception("test");
}
catch
{ }
}
这样是没问题的,你的问题是出现在删除那或者try以外了,代码没贴全
用try怎么可能会跳出循环??
continue;
或break;
private bool DeleteFile(FileInfo file)
{
try
{
file.Delete();
return true;
}
catch
{
return false;
}}foreach (FileInfo file in files)
{
this.textBox2.Text = "正在删除:" + file.FullName;
if(!DeleteFile(file ))
this.textBox2.Text = "文件" + file.FullName+“删除失败!”;
}试下,我自己也没验证过,呵呵。
这里我想你的意思是指循环报错终止了循环便利 没有把后面能够正常删除的删除
如果不想被客户知道 那么就写入log如果需要被知道你就可以在catch里对捕捉到的异常进行处理了
foreach (FileInfo file in files)
{
try
{
if (!file.Exists)
{
textBox2.Text += "File: " + file.FullName + "...Not Exists!"
continue;
}
textBox2.Text += "Deleteing:" + file.FullName;
file.Delete();
textBox2.Text += "...OK!\r\n";
}
catch (System.Exception pe)
{
textBox2.Text += "...NG!\r\n";
textBox2.Text += "Error Message: " + pe.Message + "\r\n";
}
}