【问题标题】:Is there a way to handle error in a try-catch-finally if the error occurs after the finally block?如果在 finally 块之后发生错误,是否有办法处理 try-catch-finally 中的错误?
【发布时间】:2011-05-05 20:42:46
【问题描述】:

我只是好奇。我刚刚使用 try-catch-finally 用 C# 编写了我的第一个主要代码。我想知道是否存在这样的方法来处理错误,如果在 finally 块内还有其他需要处理的东西。谢谢。

【问题讨论】:

  • 要处理什么东西?你有在 try 块中的代码。除非它抛出,否则它将被执行,然后执行 finally 块中的代码,然后控制流转到 try-catch-finally 构造之后的任何内容。额外的东西会放在哪里?
  • 你能改写这个问题吗,你问的不是100%清楚。
  • “在 finally 块内之后”没有帮助。如果您希望代码在 finally 块之后执行,请将其放在那里。如果您想要其他内容,则必须更具体。尝试编辑以包含一个示例控制结构,显示附加代码的去向。
  • 我希望这有助于它变得有意义。我有一个代码,可以在 try 块内将数据从 MS Access 插入 Oracle 表,但因为我需要来自 MS Access 表的最新数据。我在 finally 块中添加了几行,删除了除大多数数据之外的所有数据。额外的删除部分已完成,因为此 Oracle 表通常由 Windows 服务填充。
  • 我还是不明白。你说你想在 finally 块中做点什么;为什么不把代码放在那里?你在做什么不能只把代码放在 try 块、finally 块或 finally 块之后?

标签: error-handling finally try-catch-finally


【解决方案1】:

您可以在 finally 子句中嵌套另一个 try-catch 块(如果我正确理解您的问题):

try
{
...
}
catch
{
...
}
finally
{
    try
    {
    ...
    }
    catch
    {
    ...
    }
}

【讨论】:

    【解决方案2】:

    我对 c 一无所知,但逻辑告诉我,如果您不在 try-catch-finally 范围内,则您超出了该条件语句的范围,因此需要一个新的 try-catch-finally 或类似的东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-27
      • 2017-09-14
      • 2020-08-24
      • 1970-01-01
      • 2011-09-24
      • 2013-12-16
      • 2018-11-07
      相关资源
      最近更新 更多