异常不走try-catch,怎么扑捉异常啊?在线等,就这么多分了。

zw_qq 2007-08-08 10:02:56
我打开一个excel文件,这个文件是坏的,在
try
{
conn.open();
}
catch(System.Exception ex)
{
MessageBox.Show(ex.Message,"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
的时候,
却不走catch,
在open();时直接跳出异常:
未处理的“System.ExecutionEngineException”类型的异常出现在 system.data.dll 中。
我的意思很简单,就是当遇到坏的excel文件无法打开时,给一个提示,
在线等,就这么多分了。请大家帮忙啊
...全文
997 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
Avoid 2007-08-09
  • 打赏
  • 举报
回复
这个就像当于系统蓝屏...
Avoid 2007-08-09
  • 打赏
  • 举报
回复
感谢大家对我的帮助,如果扑捉不到这个异常,不知道有没有别的办法避免没有?
-------------

微软下的定义:
执行引擎错误是致命错误,决不应该发生。此类错误主要是在执行引擎被破坏或丢失数据时发生的。

《决不应该发生》
chenqiong1015 2007-08-09
  • 打赏
  • 举报
回复
好像就是因为你定义的异常类型不能满足你程序打开抛出的。所以你捕获不到。
狗豆腐 2007-08-09
  • 打赏
  • 举报
回复
学习
postfxj 2007-08-09
  • 打赏
  • 举报
回复
我還碰到更其怪的呢,我在調試中碰到異常,它直接就中此整個程序,如果加了catch就不會中斷程序。
zw_qq 2007-08-09
  • 打赏
  • 举报
回复
感谢大家对我的帮助,如果扑捉不到这个异常,不知道有没有别的办法避免没有?
yan53125 2007-08-09
  • 打赏
  • 举报
回复
好帖 留名
woaichenyu 2007-08-09
  • 打赏
  • 举报
回复
好贴 留名
shilei831115 2007-08-09
  • 打赏
  • 举报
回复
好贴 留名
nacarat 2007-08-09
  • 打赏
  • 举报
回复
调试时?
北京的雾霾天 2007-08-09
  • 打赏
  • 举报
回复
请检查一下这个设置:

调试
  异常
    Common Language Runtime Exceptions 引发(不选择上的) 用户未处理的(选择上的)
fufuvx 2007-08-09
  • 打赏
  • 举报
回复
如果抛出异常的和你这个catch不在同一个线程就捕获不到了
破碎的脸 2007-08-08
  • 打赏
  • 举报
回复
try
{
conn.open();
}
catch{
}


就这样试试。
kinglht 2007-08-08
  • 打赏
  • 举报
回复
你的conn是什么东西?能否修改open()代码?
zw_qq 2007-08-08
  • 打赏
  • 举报
回复
to kinglht(爱新觉罗至尊宝) :
try
{
conn.Open();
if(conn.State==System.Data.ConnectionState.Open)
{
MessageBox.Show("open","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
MessageBox.Show("已经close","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
我试过了,不跳出"已经close",在这之前就跳出异常了。
to heatol() :
你的意思我没完全明白?
一是:你的意思是:我用的是System.ExecutionEngineException ex,可我用的是System.Exception ex,你没看清。
二是:你的意思是:让我用System.ExecutionEngineException ex,我也用了,效果一样。

同时感谢两位的帮忙。
heatol 2007-08-08
  • 打赏
  • 举报
回复
catch(System.ExecutionEngineException ex)
{
MessageBox.Show(ex.Message,"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}


这样能catch嘛?
kinglht 2007-08-08
  • 打赏
  • 举报
回复
或者你根据这个conn.open();函数的返回值判断一下,不成功就抛出异常或者直接弹出错误对话框返回!
kinglht 2007-08-08
  • 打赏
  • 举报
回复
应该会走catch的啊!
panhao112311 2007-08-08
  • 打赏
  • 举报
回复
学习,顶
kaishui_gu 2007-08-08
  • 打赏
  • 举报
回复
原来这样,我还以为OutOfMemoryException这些异常都会使程序关闭的。
不好意思,误导人
加载更多回复(13)

110,538

社区成员

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

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

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