如何在C 語言中捕捉所有異常
使用Java 時,可以利用try-catch 區塊來使用catch 擷取所有異常(Throwable 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>
這將捕獲特定的異常類型(本例中為std::exception 和std::string),同時使用最終的catch-all 子句捕獲任何不可預見的異常。請記住,僅使用 catch-all 子句作為捕捉未明確處理的意外錯誤的最後手段至關重要。
以上是C 中是否有像 Java 的 Throwable 那樣的 Catch-All 異常機制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!