c语言错误捕捉,c语言捕捉异常

闲暇之日阅读lua源码,发现原来C语言除goto之外的另一个处理异常的方法。既为setjump longjump两个函数,setjump相当于try,longjump相当于catch。与goto不同的是,longjump是全局的,比goto的作用范围更广。下面贴出简单用法:

#include

#include

jmp_buf jumper;

int fdf(int a, int b) {

if (b == 0)

{ // can't divide by 0

longjmp(jumper, -3);//跳到以jumper 所在的jmp point,进行处理,-3 相当于具体的exception code.

}

return a / b;

}

int main (int argc, char **argv)

{

int jstatus = setjmp(jumper);//相当于java catch,如果发生 jumper 异常,那么会跳回到这个jmp point

if (jstatus == 0) {//第一次执行的时候是正确的setjmp return 0.

int a = 1;

int b = 0;

printf("%d/%d", a, b);

int result = fdf(a, b);

printf("=%d\n", result);

}

else if (jstatus == -3)

printf(" --> Error:divide by zero\n");

else

printf("Unhandled Error Case");

}

MVC 应用程序级别捕捉异常

捕捉异常: using System; using System.IO; using System.Net; using System.Net.Http; using System.Net.Http. ...

.NET [MVC] 利用特性捕捉异常

声明:本代码只适用于.NET MVC. 先创建一个类继承ActionFilterAttribute这个抽象类以及实现IExceptionFilter接口,并实现它的方法OnException. 代码如 ...

.NET WebAPI 利用特性捕捉异常

声明:本方式及代码只使用与.NET Web API. 先创建类继承ExceptionFilterAttribute类型并复写OnException方法. 代码如下: using System; usi ...

.NET Core[MVC] 利用特性捕捉异常

声明:本方式适用于MVC.本代码只适用于.NET Core MVC. 先创建一个类继承ExceptionFilterAttribute这个抽象类,并override它的方法OnException. 代 ...

ABP捕捉异常错误代码

在服务层或者CORE层  随便哪里都可以  创建一个捕捉异常的文件夹  里面写一个LonsidException类 继承后面的接口  然后重写继承的方法  这样在ABP项目运行阶段  无论在哪里出现异 ...

zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环

例子如下 set serveroutput on; declare   V_SQL VARCHAR2(255);   errorCode number; --异常编码     errorMsg var ...

Java如何使用finally块来捕捉异常?

在Java编程中,如何使用finally块来捕捉异常? 此示例显示如何使用finally块来通过使用e.getMessage()捕获运行时异常(Illegalargumentexception). p ...

【R笔记】使用R语言进行异常检测

本文转载自cador 本文结合R语言,展示了异常检测的案例,主要内容如下: (1)单变量的异常检测 (2)使用LOF(local outlier factor,局 ...

springmvc mybatis 声明式事务管理回滚失效,(checked回滚)捕捉异常,传输错误信息

一.知识点及问题 后端框架: Spring .Spring mvc .mybatis 业务需求: client先从服务端获取用户大量信息到client,编辑完毕之后统一Post至服务端,对于数据的改动 ...

随机推荐

zz linux 下查看局域网内所有存活主机和MAC进址

用namp对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip-mac的对应了namp比较强大也可以直接扫描mac地址和端口 进行ping扫描,打印出对扫描做出响应的主机: nmap -sP 1 ...

我给自己的Sass+Compass,在Windows下写个bat,快速cd到我的sass目录

在Windows下,我总是要打开Ruby的cmd来进行Sass,其中要写好多cd,次数多了,自己的多敲,的确能记得更牢靠,但是无形中会浪费自己的一点点敲cd命令的时间,所以我想到自己在windows下 ...

PHP的类自动加载机制

在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来. 这个在小规模开发的时候,没什么大问题.但在大型的开发项目中, ...

Element-ui Theme浅析

一.浅析 1.采用BEM方式管理类名 B:block,模块,一个块是一个独立的实体,块可以包含其它块,名字单词间用-连接:如一个搜索块: E:element,元素,一个元素是块的一部分,具有某种功能, ...

Enabling Chrome Developer Tools inside Postman

Chrome's Developer Tools are an indispensable part of the modern web development workflow. However, ...

zsh fg: no job control in this shell.

图片的上面就是将一个应用按Ctrl+Z,把任务放到后台里面.没法fg将任务回到前台运行. 在.zshrc中添加set -m. 具体原因不明.我切换到root用户里,没有出现这个问题.将我的.zshrc ...

H5 36-背景定位属性

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值