判断输入的自定义异常
在编程领域,异常处理是一种重要的错误处理机制,用于在程序运行期间捕获并处理异常情况。自定义异常是程序员根据特定需求创建的特殊错误类型,它允许我们更精确地控制程序在遇到问题时的行为。本篇文章将深入探讨如何在C++(基于提供的`Ex2.CPP`文件名推测)中实现自定义异常,并针对输入数值为13或4的情况进行处理。 要创建一个自定义异常,我们需要定义一个新的类,这个类通常会继承自标准库中的`std::exception`类。这样做的好处是可以利用`std::exception`已经提供的功能,如`what()`方法,该方法返回一个描述异常的字符串。以下是一个简单的自定义异常类示例: ```cpp class CustomException : public std::exception { public: explicit CustomException(const char* msg) : message(msg) {} ~CustomException() noexcept override = default; const char* what() const noexcept override { return message.c_str(); } private: std::string message; }; ``` 在上述代码中,我们创建了一个名为`CustomException`的新类,它继承了`std::exception`。`CustomException`有一个构造函数,接受一个错误消息字符串,以及覆盖了`std::exception`的`what()`方法来返回该错误消息。 接下来,我们可以在程序中使用这个自定义异常类。假设我们有一个函数`checkInput(int num)`,它的任务是检查输入的数值是否为13或4,如果是,则抛出自定义异常。以下是实现该功能的示例: ```cpp void checkInput(int num) { if (num == 13 || num == 4) { throw CustomException("Invalid input: 数值不能为13或4"); } } ``` 在主程序中,我们需要捕获可能抛出的异常并处理它。这通常通过`try-catch`块完成。例如: ```cpp int main() { int userInput; std::cout << "请输入一个整数: "; std::cin >> userInput; try { checkInput(userInput); std::cout << "输入有效!" << std::endl; } catch (const CustomException& e) { std::cerr << "发生异常: " << e.what() << std::endl; } return 0; } ``` 在这个`main`函数中,我们先读取用户输入的整数,然后放入`try`块中调用`checkInput`函数。如果`checkInput`抛出了`CustomException`,`catch`块会捕获它,并打印出异常信息。这样,我们就可以优雅地处理那些可能导致程序崩溃的错误情况。 总结来说,自定义异常在C++中提供了更灵活的错误处理方式。通过定义自己的异常类,我们可以为特定的错误情况提供更有针对性的反馈。在处理输入值为13或4的场景中,我们创建了一个`CustomException`类,并在`checkInput`函数中根据条件抛出这个异常。主程序通过`try-catch`结构捕获并处理这些异常,确保程序的健壮性。
- 1
- 道士玩你2013-08-26给了我一些启发。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助