C++ try-catch异常处理示例与自定义异常类
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块内的错误处理逻辑。
2021-01-01 上传
2020-08-25 上传
2020-09-02 上传
2024-10-22 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
小兔子平安
- 粉丝: 255
- 资源: 1940
最新资源
- BeatTheBotChallenge:来挑战这个玩摩托赛车电话游戏的机器人,看看它是如何制造的,并帮助改进它!
- GetHtmlTool:Qt初步获取网页原始码
- StudentClass,java怎么看源码,javap2p网贷源码下载
- 宠物播种机
- zeromq-4.2.0.tar.zip
- nginx-http-concat:WordPress插件可将单个脚本文件CSS和Javascript连接成一个资源请求
- 高级JSON表单规范第2章:输入小部件
- angularjs-studies
- city-generator:C ++ City Generator
- SocketProject:SocketProject
- crawl_html:python网络爬虫-爬网页原始码
- 手写 Volley 网络访问框架
- living-with-django:关于容忍最臃肿的python web框架的博客
- RestaurantsAppWithCollectionViews
- SkeSubDomain:利用递归归,通过匹配网页源码里的子域内容收集所有的子域信息,可收集四级五级等多级子域名
- portfolio:我的投资组合网站,其中包含我的所有工作