C ですべての例外をキャッチする方法
Java を使用する場合、try-catch ブロックを利用して、catch を使用してすべての例外をキャプチャできます。 (スロー可能な t) 構文。しかし、C には同等のメカニズムはありますか?
Windows 関数を呼び出す JNI コードのデバッグに特に役立つ、一般的な例外キャッチ メカニズムに対するこの要求に対処するために、C で実現する方法を次に示します。
<code class="cpp">try { // ... } catch (...) { // ... }</code>
このコードは、try ブロック内のすべての C 例外をキャプチャします。ただし、すべての例外をキャッチすることは一般に不適切な設計手法であると考えられていることに注意することが重要です。可能であれば、発生が予想される例外に対してより具体的な catch 句を使用することをお勧めします。
たとえば、レガシー コードの制約により C 11 の std::current_Exception メカニズムを使用できない場合は、次のようなより詳細なアプローチを検討できます:
<code class="cpp">try { // ... } catch (const std::exception& ex) { // ... } catch (const std::string& ex) { // ... } catch (...) { // ... }</code>
これは、最後の catch-all 句で予期しない例外をキャプチャしながら、特定の例外タイプ (この場合は std::Exception と std::string) をキャッチします。 。 catch-all 句は、明示的に処理していない予期しないエラーを捕捉する最後の手段としてのみ使用することが重要であることに注意してください。
以上がC には Java の Throwable のようなキャッチオール例外メカニズムはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。