mysql - 如果抛出错误,是否需要释放连接?

标签 mysql exception error-handling using-statement try-catch-finally

因此,如果我有一个连接池,那么会发生意外情况,并且会引发错误,是否需要额外释放连接?一旦引发错误,MySQL连接池会发生什么?

最佳答案

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

关于mysql - 如果抛出错误,是否需要释放连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64063462/

相关文章:

php - 从一个下拉列表中选择多个项目并插入到数据库的多行中

mysql - 根据在 Rails 中创建时添加的其他字段更新 MySQL 字段

java - 在基于 block 的步骤期间中止批处理作业

java - Jsoup 意外异常,正在工作并突然停止

javascript - Uncaught ReferenceError : sample is not defined

mysql - 插入数据库时​​的整数

mysql - 将sql查询结果分成半小时部分

asp.net-mvc-3 - MVC 3 异常 : The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System. Web.Mvc

ruby-on-rails - capybara 犯了两次错误,该如何拯救?

javascript - 事件处理程序javascript的全局错误记录