この質問は OpenKinect Libraries に限定されたものではありませんが、これは私がこれを誇示するために思いついた最良の例です。
OpenKinect の C++ ラッパーでは、何か問題が発生するたびに、runtime_error 例外がスローされます。この例は、libfreenect.hpp からのものです。スレッドは、クラスのコンストラクターで作成されます。
// Do not call directly, thread runs here
void operator()() {
while(!m_stop) {
if(freenect_process_events(m_ctx) < 0) throw std::runtime_error("Cannot process freenect events");
}
}
static void *pthread_callback(void *user_data) {
Freenect* freenect = static_cast<Freenect*>(user_data);
(*freenect)();
return NULL;
}
私の質問は単純です: これらのエラーを何らかの方法でキャッチして処理することは可能ですか?
通常、私は例外を処理するか、コードを書き直します。例外が原因でプログラムがクラッシュするのは好きではありません。例外が発生する可能性があることがわかっている場合は、クリーンに処理したいと思います。私が書き直すことができない同様のことを行うライブラリがいくつかあるため、なぜこの質問をするようになったのですか。