C#程序在发生异常时如何继续运行

freshmantl 2009-08-12 05:15:08
请各位大侠赐教

我写一个类似这样的程序

点击button执行x()程序,x()程序是从txt文档中读取数据并写入Access数据库,但由于数据可能是重复的,将不能写入数据库
我用

try
{
}
catch (Exception ex)
{
listBox1.Items.Add(ex);//异常,就跳出了
}

来执行,如果遇到重复数据程序就在listBox1中报异常,但程序就不会继续执行下去了,我想让它继续执行,对于出错的数据先不管它,等将来再来处理,而要继续写如下一条,这该则样实现呀?
...全文
1185 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
didiaogao 2010-10-27
  • 打赏
  • 举报
回复
在catch 里是咋continue的 。continue 不是有循环的时候才能用的吗
freshmantl 2009-08-13
  • 打赏
  • 举报
回复
谢谢大家,问题已经解决,汉唐盛世是自己同事,当面授课了
就是把
try 和 catch
放到输入数据库的位置
遇到异常就continue,然后读取下一行再次循环输入,非常感谢大家
qqiuzaihui 2009-08-12
  • 打赏
  • 举报
回复
catch 内再 try...catch
fzxu_05 2009-08-12
  • 打赏
  • 举报
回复
pao chu不就行了
baishi1987 2009-08-12
  • 打赏
  • 举报
回复
都是嘛,跳出去就是了
hecker728 2009-08-12
  • 打赏
  • 举报
回复
对读取的数据做一个编号,,出现异常(数据重复)就编号+1,读下一条数据,往数据库写,

这些在
catch (Exception ex)
{
listBox1.Items.Add(ex);
} 中处理。。
taoistong 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 freshmantl 的回复:]
1楼,这样好像不行吧,因为我在try中执行的就是把多个txt文档中的数据写入数据库,如果前边加个for循环,那样就重复输入了还是会异常呀,只不过是报100次异常
[/Quote]
你理解错1楼的意思了.他的意思是你的TRY CATCH要放在每条插入语句那里.而不是所有插入语句,.
好好整理一下思路吧 . 你的问题是可以解决的
mrnian2008 2009-08-12
  • 打赏
  • 举报
回复
不好意思,写错了,是continue
mrnian2008 2009-08-12
  • 打赏
  • 举报
回复
一楼的catch里加个continu就对了
mrnian2008 2009-08-12
  • 打赏
  • 举报
回复
可以从两个方面解决:
一、先把txt读入内存队列,然后循环读取队列写入数据库,catch到异常则continue,读取下一条并入库;
二、每次插入数据库之前,先查找即将要插入的这条数据是否已经存在于数据库,若已经存在,则不再插入。

我写数据库程序都是这么干的,尤其是第二条,写数据库操作的程序一定要注意,争取主动,降异常出现的概率。
freshmantl 2009-08-12
  • 打赏
  • 举报
回复
1楼,这样好像不行吧,因为我在try中执行的就是把多个txt文档中的数据写入数据库,如果前边加个for循环,那样就重复输入了还是会异常呀,只不过是报100次异常
llszn 2009-08-12
  • 打赏
  • 举报
回复


for(int i=0;i<100;i++)
{
try
{
//插入数据库代码
}
catch (Exception ex)
{
listBox1.Items.Add(ex);
}
}





110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧