文档章节

c里面异常的处理

TreeNode
 TreeNode
发布于 2017/07/31 19:20
字数 273
阅读 2
收藏 0
点赞 0
评论 0

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的问题,会友好的提示,接着运行。

© 著作权归作者所有

共有 人打赏支持
TreeNode
粉丝 0
博文 24
码字总数 12090
作品 0
海淀
从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解

本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验。本文继续上一篇随笔...

walb呀
2017/12/04
0
0
day20异常的一些操作及解释

1异常 1.1异常简介 异常:就是程序运行错误或者逻辑混乱。不能让用户看到直接代码的报错,需要给客户友好的提示。 异常一般是程序中无法完全避免,一般通过一定的手段,尽量减少异常的发生。...

AAA年华
2017/11/17
0
0
字符设备驱动程序之概念介绍(一)

字符设备驱动程序之概念介绍(一) 一、 Uboot目的是启动内核。 内核目的是启动应用程序。 二、 应用程序:读写文件、点灯、获取按键 三、 1、框架: 2、简单的应用程序 int main(){ int fd...

xiaodingqq
05/06
0
0
【JavaSE(十二)】JavaIO流(上)

原文地址:https://www.cloudcrossing.xyz/post/44/ 1 异常 1.1 异常概述 异常就是Java程序在运行过程中出现的错误。 程序的异常:Throwable类是 Java 语言中所有错误或异常的超类,其子类有...

苍云横渡
05/26
0
0
Java EE项目中异常设计及处理总结

异常,为我们处理非正常的业务流程提供了很好的解决方案,如果你有过dbase、c、pascal等过程式语言开发的经历,你一定会深刻体会到,异常机制给你的代码可读行、可维护性带来的好处,同时,程...

chace0120
2014/04/26
0
0
使用lua实现try-catch异常捕获

lua原生并没有提供try-catch的语法来捕获异常处理,但是提供了等接口,可在保护模式下执行lua函数。 因此,可以通过封装这两个接口,来实现try-catch块的捕获机制。 我们可以先来看下,封装后...

ruki
2016/12/14
19
0
记客户端请求超时分析过程

请求处理过程描述 服务端 使用 框架 加载 业务so,并未业务so创建协程处理,处理完成后给出 响应。so入口函数接收(const Type&in, Type &out,Type &extend),是否给出响应的前提是 out里面要有...

qdqade
2017/07/14
0
0
Spring事务回滚情况

spring 默认 非嵌套调用的情况 Spring框架的事务基础架构代码将默认地 只 在抛出运行时和unchecked exceptions时才标识事务回滚。 也就是说,当抛出一个 RuntimeException 或其子类例的实例时...

go4it
2016/11/23
22
0
hessian 使用异常处理

版本:spring 3.2 +hessian4.0.37 异常一:hessian 只能使用post调用! HTTP Status 405 - HessianServiceExporter only supports POST requests type Status report message HessianService......

LonnyDong
2016/07/26
78
0
Servlet运行原理及404、500、405异常原因和解决方法总结

本文转载自:Servlet运行原理及404、500、405异常原因和解决方法总结 一、Servlet运行原理 比如,在浏览器地址栏输入http://ip:port/web01/hello,整个通信流程如下图所示: 分步解释: (1...

gongxifacai_believe
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git GUI Client

Git GUI Client   这里我们为大家收藏了众多Git的GUI客户端,下载请点击这里

qwfys
8分钟前
0
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
12分钟前
2
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
18分钟前
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
32分钟前
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 #!/usr/bin/expectset passwd "123456"spawn rsync -av root@192.168.133.132:/tmp/12.txt /tmp/expect {"yes...

lyy549745
33分钟前
0
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
41分钟前
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
45分钟前
1
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0
nginx负载均衡

一、nginx 负载均衡 拓扑图: 主机信息: 1、负载均衡器1(lb1):192.168.10.205 RHEL7.5 2、负载均衡器2(lb2):192.168.10.206 RHEL7.5 3、web服务器1(web01):192.168.10.207 Centos...

人在艹木中
昨天
0
0
做了一个小网站

做了一个小网站 www.kanxs123.com

叶落花开
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部