C++ try-catch异常处理示例与自定义异常类

1 下载量 173 浏览量 更新于2024-08-03 收藏 3KB TXT 举报
在C++编程中,异常处理是一种强大的错误管理机制,它允许程序在遇到问题时优雅地恢复,而不是突然终止。try-catch块是C++中实现异常处理的核心结构。当一段代码可能会引发异常时,我们将其放在try块中,这样编译器或运行时环境在遇到异常情况时会立即跳转到相应的catch块进行处理。 在给定的示例代码中,`processNumber()`函数是关键部分,它接受一个整数作为输入。函数内部有三个条件判断,分别对应三种可能的异常情况: 1. 如果输入的数字小于0,函数通过`throw std::runtime_error("Negativenumberencountered");`抛出一个`std::runtime_error`异常,表示出现了运行时错误——负数操作。 2. 如果输入的数字等于0,函数通过`throw MyException();`抛出自定义的`MyException`异常,这是一个继承自`std::exception`的类,提供了对异常的更细致控制。 3. 如果输入的数字大于0,函数正常执行并输出提示。 在`main()`函数中,我们使用`try`块包裹了调用`processNumber()`的部分,确保在异常发生时能够捕获。接着,我们设置了三个`catch`块: - 第一个`catch(const std::runtime_error& e)`捕获`std::runtime_error`类型的异常,显示异常的消息内容。 - 第二个`catch(const MyException& e)`捕获自定义的`MyException`异常,同样显示异常的描述信息。 - 最后一个`catch(...)`块使用省略号`...`来捕获所有未明确指定的异常类型,这通常用来处理未知或未预见的异常情况,这里只是简单地输出一条消息。 通过这种方式,C++的异常处理机制使得程序能够在遇到问题时提供有用的错误信息,而不是直接崩溃,提高了程序的健壮性和可维护性。在实际开发中,根据需求,可以添加更多的catch块来处理不同类型的异常,或者定制catch块内的错误处理逻辑。