c里面异常的处理
博客专区 > TreeNode 的博客 > 博客详情
c里面异常的处理
TreeNode 发表于7个月前
c里面异常的处理
  • 发表于 7个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

c里面异常的处理

最近在改一个实现计算器的小demo的时候,进行除法运算时,除数为0的情况,之前实现除法的部分代码如下

int Divide()
{
    int a,b;
    printf("Please input two integer numbers:\n");
    scanf("%d %d", &a, &b);
    int c = a / b;
    printf("The result of div cmd is:\n");
    printf("%d/%d=%d\n", a,b,c);
    return 0;
}

发现没有对除数为0单独处理,于是查找c里面的异常解决方案,找到了一篇不错的博客,参照他的做法,我对原来的代码做了如下的改动

#include <setjmp.h>
jmp_buf buf; 

// ...

// 异常处理函数
void error_code(void)  
{  
   longjmp(buf,1);  
} 

int Divide()
{
    double a,b;
    printf("Please input two numbers:\n");
    if(setjmp(buf)==0){
	scanf("%lf %lf", &a, &b);
	if(0==b){
            error_code();
	}
	printf("The result of div cmd is:\n");
	float c = a / b;
	printf("%lf/%lf=%f\n", a,b,c);
    }
    else
	printf("error div number 0\n");

    return 0;
}

经过这样的改动,基本上可以实现了对除数是0的异常处理,代码即使遇到除数是0的问题,会友好的提示,接着运行。

标签: c cpp 异常处理
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 24
码字总数 12090
×
TreeNode
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: