我在try
块中打开了一个excel文件。
然后在catch
块中,如果有任何异常,我会放入一条语句来关闭excel文件和excel应用程序。我甚至试过finally
,但它也不起作用。
似乎出现了一条错误消息,指出变量在当前上下文中不存在。
发生异常时,我应该如何关闭excel?
我在try块中打开了一个excel文件。
在try
块之前立即打开excel文件。这将允许它在catch
部分期间处于范围内。如果您计划总是关闭它,只需将逻辑放在finally
块中,因为无论是否发生异常,都会发生这种情况。
// Open file..
try
{
// use file
}
finally
{
// close here
}
根据你的陈述,我相信你的问题是:
try
{
// Do Stuff.
}
catch
{
// Close my connection.
}
这种方法是无效的,原因是除非出现错误,否则catch
不会真正实现。因此,您需要在代码的try
或try catch
部分之外发布您的结束。
然而,您应该发布代码,因为您的答案会因您的结构、实现和代码的整体流程而异。正如您将要考虑的那样,C#有一个自动垃圾回收和其他几个变量。
你可能想把它想象成:
value = 3;
if (value == 0)
{
value = 1;
}
else if (value == 1)
{
value = 1;
}
else
{
value = 5;
}
value
将等于5,原因是value
不符合其他范围。因此,它将落在else
括号中。try catch
也是如此。除非catch
被异常触发,否则您的代码永远不会进入该特定代码块的范围。