在显示错误消息之前关闭和处理资源是不错的做法?
如果您发现错误并且在与资源(如数据库和文件对象)相同的范围内显示错误消息,则不应关闭这些资源并在之前将处理掉显示错误消息?
如果您正在等待这些资源退出范围,那么只有在关闭错误消息对话框后才会执行此操作。这意味着用户可以将错误消息留在屏幕上一段时间,这样做可以锁定某些资源。
例如
try { ... }
catch (Exception e) {
// should close/dispose resources here
...
...
MessageBox("Error");
}
答案 0 :(得分:1)
最好不要在catch块中显示任何UI。相反,处理finally块中的资源,但返回一些值,指示发生错误并让调用方法处理它,必要时使用UI。
其中一个变体是处理finally块中的资源并让catch块重新抛出调用方法要处理的异常。
答案 1 :(得分:0)
您可以尝试使用finally块。
答案 2 :(得分:0)
最好将资源放在
中using( ) { } scope
或使用RAII,因此当它们退出范围时,它们会在消息框被点击之前正确整理。