我有一段网络代码抛出各种异常,这些异常都被一般的 catch 异常语句捕获。
try {
network code
} catch (Exception e) {
freeaddrinfo(some_address);
}
此方法的问题是异常中的 freeaddrinfo。并非所有异常情况都可以/应该调用 freeaddrinfo 并且在我的特定情况下,当传递到网络代码以连接某处的无效地址时,不应调用 freeaddrinfo。我解决此问题的想法是检索此异常引发的错误代码,并可能将其与 e.to_string 结合使用来处理此边缘情况。根据我从 Effective Java 中学到的知识,这是一种处理这个问题的脆弱方法。你建议我应该怎么做?