C++程序示例,展示异常处理

c++程序示例,展示异常处理

假设有一个函数用于计算一些复杂的数学运算。但在运算过程中,可能会发生一些异常。我们必须处理可能发生的不同类型的异常,并执行以下操作。

如果计算机无法为计算分配内存,我们必须打印“内存不足!”如果发生任何其他与C++相关的异常,我们必须打印“异常:”然后是异常信息。如果发生其他情况,我们打印“未处理的异常”。

我们有一个包含一对值的数组,并将其传递给函数。如果发生任何异常,我们处理它,否则打印输出值。

我们只需要处理异常,而不考虑函数生成异常的机制。

因此,如果输入是arr = {{361643035132, 2297873642249}, {-17, 15}};,那么输出将是-

立即学习“C++免费学习笔记(深入)”;

Memory Low!Exception: val1 is negative

登录后复制登录后复制

第一对值太大无法处理,所以打印出“内存不足”。第二对值的第一个值是负数。提供的函数无法处理,因此生成/抛出异常“val1为负数”,

为了解决这个问题,我们将按照以下步骤进行操作 −

初始化 i := 0,当 i val1 := values[i, 0]val2 := values[i, 1]尝试,打印(foo(val1, val2))如果无法分配内存(捕获到bad_alloc异常),则打印“内存不足!”否则,如果捕获到任何其他标准C++异常 e,则打印“异常:”打印异常的详细信息否则,如果捕获到任何其他异常,则打印“未处理的异常”

示例

让我们看一下以下实现,以便更好地理解 −

#include #include #include #include #include #include using namespace std;class Solution {private:   static int value;public:   static int foo(long long val1, long long val2) {      value += 1;      if(val1  vectorList(val1, 0);      int r = -1, c = sqrt(-1);      if(val2 == 0) throw 0;      r = (val1 / val2) * r;      int ans = vectorList.at(val2);      return r + val1 - val2 * ans;   }   static int getVal() {      return value;   }};int Solution::value = 0;void solve(int t, long int values[][2]) {   for (int i = 0; i 

输入

long int arr[][2] = {{361643035132, 2297873642249}, {-17, 15}};solve(2, arr);

登录后复制

输出

Memory Low!Exception: val1 is negative

登录后复制登录后复制

以上就是C++程序示例,展示异常处理的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2583637.html

(0)
上一篇 2025年3月6日 14:37:04
下一篇 2025年2月22日 19:53:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论