首頁 > 後端開發 > C++ > 如何優雅地處理 C 中被零除異常?

如何優雅地處理 C 中被零除異常?

Mary-Kate Olsen
發布: 2025-01-04 02:54:42
原創
734 人瀏覽過

How to Gracefully Handle Divide-by-Zero Exceptions in C  ?

處理除零異常

C 中的整數缺乏本機異常支援。因此,在提供的程式碼片段中:

int i = 0;

cin >> i;  // Input might be zero

try {
    i = 5/i;
}
catch (std::logic_error e) {

    cerr << e.what();
}
登入後複製

當輸入為零時,它將導致未定義的行為而不是觸發異常。要處理這種情況,您需要明確執行檢查並拋出異常。

在以下程式碼中,我們使用 intDivEx 方法處理除零異常:

#include <iostream>
#include <stdexcept>

inline int intDivEx(int numerator, int denominator) {
    if (denominator == 0)
        throw std::overflow_error("Divide by zero exception");
    return numerator / denominator;
}

int main() {
    int i = 42;

    try {
        i = intDivEx(10, 0);
    } catch (std::overflow_error &e) {
        std::cout << e.what() << " -> ";
    }
    std::cout << i << std::endl;

    try {
        i = intDivEx(10, 2);
    } catch (std::overflow_error &e) {
        std::cout << e.what() << " -> ";
    }
    std::cout << i << std::endl;

    return 0;
}
登入後複製

此程式碼在執行操作之前檢查是否已被零除。如果發生異常,它會列印錯誤訊息。否則繼續執行。

以上是如何優雅地處理 C 中被零除異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板