gpt4 book ai didi

asp.net - 在 asp.net 中执行 finally block 的确切原因是什么?我知道它的设计,在 finally block 中我应该进行资源清理

转载 作者:行者123 更新时间:2023-12-02 06:36:09 25 4
gpt4 key购买 nike

我知道它的设计,在 finally block 中我应该进行资源清理——这就是为什么不管异常处理代码是什么,总是执行 finally block 的原因。
但是“为什么”它会执行是我的问题?,这是在一次采访中问我 friend 的,所以即使我在与他讨论后感到困惑,请澄清,提前谢谢。?

最佳答案

这里的“为什么”可以概括为“因为这就是规范所说的;这就是它被设计、指定、实现、测试和支持的原因:因为他们想要总是执行的东西,不管异常处理代码是什么”。这有点像问“如果 else 测试中的条件失败,为什么执行流向 if block (如果有)?”
finally的用途|包括:

  • 资源清理(Dispose() 是一个重要的,但不是唯一的)
  • 记录/跟踪/分析我们完成的事实(无论成功与否)
  • 使状态再次一致(例如,重置 isRunning 标志)

  • 有趣的是,我制作 很多更多使用 finally比我做的 catch .我希望在离开时发生一些事情是很常见的,但通常最好的办法是让它们向上冒泡。在异常期间我通常需要确保做的唯一一件事就是清理我造成的任何困惑——我需要这样做——所以我不妨使用 finally 的组合来做这件事。和 using (这实际上只是 finally 的封装)。

    关于asp.net - 在 asp.net 中执行 finally block 的确切原因是什么?我知道它的设计,在 finally block 中我应该进行资源清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397015/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com