当前位置:首页>java>【C++编程哲学妙喻】- 错误处理:小病自理,大病急诊

【C++编程哲学妙喻】- 错误处理:小病自理,大病急诊

  • 2026-10-22 11:13:31
【C++编程哲学妙喻】- 错误处理:小病自理,大病急诊
返回值处理错误,就像得了感冒,自己从药箱找点药吃。异常处理,则像突发心脏病,立刻呼叫救护车...

C++错误处理就像看病:小病(如感冒)用返回值自理;大病(如心脏病)才需异常"急诊"。精髓在于——按错误严重程度选择策略,别把感冒当心脏病治。

【代码演示】

#include <iostream>#include <stdexcept>#include <string>// 🤧 小病:用返回值处理class MedicineCabinet {public:    enum class ColdRemedy { SUCCESS, NO_MEDICINE };    ColdRemedy treatCold() {        if (hasMedicine()) {            std::cout << "💊 吃感冒药,自己处理\n";            return ColdRemedy::SUCCESS;        }        std::cout << "药箱没药了\n";        return ColdRemedy::NO_MEDICINE;    }private:    bool hasMedicine() { return true; }};// 🚑 大病:用异常处理class EmergencyRoom {public:    void treatHeartAttack() {        if (isCriticalCondition()) {            throw std::runtime_error("💔 心脏病发作!需要急救!");        }    }private:    bool isCriticalCondition() { return true; }};// 🏥 医院系统:区分病情轻重class Hospital {    MedicineCabinet cabinet;    EmergencyRoom er;public:    void handlePatient(const std::string& symptom) {        if (symptom == "感冒") {            // 小病:局部处理            auto result = cabinet.treatCold();            if (result == MedicineCabinet::ColdRemedy::NO_MEDICINE) {                std::cout << "去买点药...\n";            }        }        else if (symptom == "心脏病") {            // 大病:异常处理            try {                er.treatHeartAttack();            }            catch (const std::exception& e) {                std::cout << "🚨 紧急情况: " << e.what() << "\n";                std::cout << "立即呼叫救护车!专业医生接管!\n";            }        }    }};int main() {    std::cout << "=== 错误处理策略 ===\n";    Hospital hospital;    std::cout << "处理感冒:\n";    hospital.handlePatient("感冒");    std::cout << "\n处理心脏病:\n";    hospital.handlePatient("心脏病");    std::cout << "\n关键:别把感冒送急诊,别让心梗自己扛!\n";}
AI大师Karpathy最新访谈:AGI还需十年
不惑之年,我重拾经典
“万事俱备”的陷阱,会毁掉你的可能性
年龄只是个数字?别再自欺欺人了
从代码小白到架构与管理的蜕变
研发转管理会失去能力护城河?
迈向架构师与技术领袖【程序员的蜕变之路】
工欲善其事,必先利其器
一个普通IT人的20年奋斗:从小白到编程教育布道者
AI什么都会了,我们还要学习吗?
Andrej Karpathy最新演讲:AI时代的软件
小朋友学编程早,真能“赢在起跑线”?
普通人如何应对AI带来的变革
抱歉,只能为30人开放!AI+真人护航学编程
AI时代为何还要学习编程?
为简化编程入门,我费尽思量

最新文章

随机文章