to kaishui_gu(): 我的程序没问题, 没有退出,是excel文件本身是坏的,但我想用异常处理机制将此异常扑捉,以后在open坏的excel文件时给一个提示。 对了顺便问一下,强行关闭程序,用什么方法? 我用的是 this.Dispose(); System.Windows.Forms.Application.Exit(); System.Windows.Forms.Application.ExitThread();但程序没有停止,没有退出
捕捉所有异常 不要只捕捉system的异常
The exception that is thrown when there is an internal error in the execution engine of the common language runtime. 我觉得是.net的一个bug,你用的是什么版本呢?试试新版有没有fix这个bug。 它的execution engine都出错了,我们也就别指望能捕捉这个exception了。
{
MessageBox.Show(ex.Message,"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
这样能catch嘛?
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,我也用了,效果一样。同时感谢两位的帮忙。
{
conn.open();
}
catch{
}
就这样试试。
,不能运行下去,
例如
1、connection.open ==>这里抛出了exception ,可能是网络问题,也可能是数据库问题,也可能是,连接字符串问题等等
2、出现了你能确定原因的错误,但不知如何处理,例如你给别人编组件,出现了问题,是写日志还是给用户提示,所以抛出异常你的第一个case ,2.0 可以用trypase
1.1 最好用regex 判断一下,直接用异常的方式似乎有些不承担责任的意思
如果程序退出的话应该是你的代码有问题
我的程序没问题, 没有退出,是excel文件本身是坏的,但我想用异常处理机制将此异常扑捉,以后在open坏的excel文件时给一个提示。
对了顺便问一下,强行关闭程序,用什么方法?
我用的是
this.Dispose();
System.Windows.Forms.Application.Exit();
System.Windows.Forms.Application.ExitThread();但程序没有停止,没有退出
它的execution engine都出错了,我们也就别指望能捕捉这个exception了。
执行引擎错误是致命错误,决不应该发生。此类错误主要是在执行引擎被破坏或丢失数据时发生的。系统会随时引发此异常。在可能的情况下,系统将引发比 ExecutionEngineException 异常能提供更多信息的异常。
要解决这个问题,就是在调用Open方法前先判断excel文件是否损坏怎么关闭程序我就不知道了
OutOfMemoryException
ExecutionEngineException以上几个异常都无法捕捉
不好意思,误导人
异常
Common Language Runtime Exceptions 引发(不选择上的) 用户未处理的(选择上的)