catch函数c语言,catch c#

c语言怎么从子函数的子函数直接返回主函数

C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。

10年积累的成都做网站、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有那曲免费网站建设让你可以放心的选择与我们合作。

C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。

因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:

1)你的两个子函数都是由返回值的函数

2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。

因此建议你的这个问题还是用C++ 的异常去解决比较好。

c语言 让函数返回到上一级 和 直接返回到主函数 分别应该用什么语句?

函数返回上一级使用return语句就行了。

c标准库里有一套函数:setjmp/longjmp ,程序员可以在任意位置调用setjmp保存现场,然后在任意另外位置调用longjmp跳到那个保存的现场。这样就可以满足直接调回主函数的需求,但这套函数保存现场并不充分,而且打破正常流程控制,很不稳定,一般来所不推荐使用。

关于C语言中的try语句

C语言是没有try语句的,还有,你这个地方也就算是一个函数(在C语言里面你写的这个try只能是函数)

有语法错误,帮你改了,你自己再看看

#includestdio.h

void try(int,int,int);

int main()

{

int x=2,y=3,z=0; //y=3

printf("(1)x=%d y=%d z=%d\n",x,y,z);

try(x,y,z);

printf("(4)x=%d y=%d z=%d\n",x,y,z);

}

void try(int x,int y,int z)

{

printf("(2)x=%d y=%d z=%d\n",x,y,z);

z=x+y;

x=x*x;

y=y*y;

printf("(3)x=%d y=%d z=%d\n",x,y,z);

}

一点补充:最开始我运行你这个程序是在一个.cpp文件里面写的代码,然后运行,但是程序会报错,为什么呢?因为cpp一般而言是C++的文件,C++里面有try语句,try是他的一个关键字,所以函数名不能是关键字,程序报错了。

但是在一个.c文件里面是没有问题的~~

还有,你这个真心是一个函数,不是try语句,try语句是

try

{

do something

}

catch(some error)

{

do something

}

C语言里try是什么意思?

C语言里try是一个语句或函数。其作用是是抛出错误用。

将有可能产生错误的语句括在一起,放入try语句块。如果在try语句块中发生异常,FlashPlayer会创建一个错误对象,并将该Error对象派发至第一个可用的catch块。catch语句块提供对错误的处理。如果没有try语句,或者try语句没有出现错误,则catch语句不会被引发。如果在try语句块的其中某个语句中检测到错误,则会执行附加到该try语句的catch语句。catch语句可以并列使用,即在一个try语句块之后,存在多个catch语句块,以处理不同的错误对象。

try语句是:

try

{

do something

}

catch(some error)

{

do something

}

c++中 try 和catch的用法

1、在c++中,可以直接抛出异常之后自己进行捕捉处理,如:(这样就可以在任何自己得到不想要的结果的时候进行中断,比如在进行数据库事务操作的时候,如果某一个语句返回SQL_ERROR则直接抛出异常,在catch块中进行事务回滚,用法:

#include iostream  #include exception

using namespace std;

int main () {

try

{

throw 1;

throw "error";

}

catch(char *str)

{

cout str endl;

}

catch(int i)

{

cout i endl;

}

}

2、 try 和catch定义异常类来进行处理:

#include iostream  #include exception

using namespace std;

//可以自己定义Exception  class myexception: public exception

{

virtual const char* what() const throw()

{

return "My exception happened";

}

}myex;

int main () {

try

{

if(true)    //如果,则抛出异常;

throw myex;

}

catch (exception e)

{

cout e.what() endl;

}

return 0;

}

扩展资料

c++的特点:

1、C++通过建立用户定义类支持数据封装和数据隐藏。

2、C++是支持数据封装的工具,对象则是数据封装的实现。

3、采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。

4、C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。

参考资料来源:百度百科—C++


标题名称:catch函数c语言,catch c#
文章源于:http://pwwzsj.com/article/heohei.html