我尝试捕获finally块,如果发生一些异常,我将从catch块返回,所以最后块仍然执行,如果是的话,什么时候?返回之前还是返回之后?
这是正确的做法吗?
try { // do something } catch (Exception) { return false; } finally { if (connection.State == ConnectionState.Open) connection.Close(); }
它将在返回后执行“finally”块 . “最后”用于某些实践,例如关闭数据库连接(总是需要完成)
始终执行finally块 . 在你的情况下,它在你的return语句之前执行 .
你可以尝试自己
private bool test() { try { int i = 0; int u = 10 / i; } catch (Exception) { return false; } finally { } return true; }
所以它是一个除零零例外 . 当您执行此代码时,最终将执行并在返回后执行 .
它就像Runtime一样,在finally块的情况下返回结果!
finally代码将始终在代码退出try-catch-finally块之前执行(任何条件如ThreadAbortException阻止finally块执行将阻止代码退出try-catch-finally块) .
4 回答
它将在返回后执行“finally”块 . “最后”用于某些实践,例如关闭数据库连接(总是需要完成)
始终执行finally块 . 在你的情况下,它在你的return语句之前执行 .
你可以尝试自己
所以它是一个除零零例外 . 当您执行此代码时,最终将执行并在返回后执行 .
它就像Runtime一样,在finally块的情况下返回结果!
finally代码将始终在代码退出try-catch-finally块之前执行(任何条件如ThreadAbortException阻止finally块执行将阻止代码退出try-catch-finally块) .