因此,如果我有一个连接池,那么会发生意外情况,并且会引发错误,是否需要额外释放连接?一旦引发错误,MySQL连接池会发生什么?
最佳答案
您没有告诉我们您使用哪种编程语言,或者您想捕获哪种异常。因此很难具体说明。
通常,答案是是。始终释放/处置/取消分配任何资源,例如连接和游标。这类资源有时称为串行可重用资源。如果不释放它们,它们最终将耗尽,并且程序将停止运行。如果幸运的话,它会崩溃。如果您不走运,它将挂起,等待永远不会到达的资源。
某些语言在分配时使用try {} catch() {} finally {}
模式释放资源。将您的连接释放代码放在finally{}
块中,它将始终运行。
C#使用using (var resource = getSomeResource()) {}
。这种模式确保即使块中的代码引发异常,资源的.dispose()
方法也总是被调用。
对此您要多加注意,程序会在不因某种资源泄漏而崩溃的情况下运行更长的时间。我提到的语言结构正是为了稳健地解决您的问题而发明的。
关于mysql - 如果抛出错误,是否需要释放连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64063462/