さまざまな例外をスローするネットワークコードがありますが、これらはすべて一般的なcatch例外ステートメントでキャッチされます。
try {
network code
} catch (Exception e) {
freeaddrinfo(some_address);
}
このメソッドの問題は、例外内のfreeaddrinfoです。例外のすべてのケースでfreeaddrinfoを呼び出すことができる/すべきではありません。私の特定のケースでは、どこかに接続するためにネットワークコードに渡される無効なアドレスがある場合、freeaddrinfoを呼び出すべきではありません。この問題を解決する私の考えは、この例外によってスローされたエラーコードを取得し、これをe.to_stringと組み合わせて使用してこのエッジケースを処理することです。私がEffectiveJavaから学んだことから、これはこの問題に対処するための脆弱な方法です。あなたは私が何をすべきかをお勧めしますか?