C++/C程序、函数结束

原创 2014年06月08日 20:50:34


《一》C++函数结束与异常处理:

(1)return:
 (1.1)功能简介:
 
 return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。

 (1.2)使用方法:

 (1.2.1)不带返回值的return语句只能用于返回类型为void的函数。
 (1.2.2)任何返回类型不是void的函数都必须返回一个值,而且这个返回值的类型必须和函数的返回类型相同,或者能隐式转化为函数的返回类型。
  如: return 0;

(3)try{ ...; throw  }catch(){};

funA(){     
  //....     
    while(...){              
       if(...){          
        throw new exception;       
       }    
    }

}


funB(){
   funA();
   }

 int main(){
  try{ 
    funB();
    }catch(exception* e) {
        //捕获到异常
    }
 } 

 解析:在函数A中,由于某种原因抛出了一个异常,这不但会退出循环,同时还会退出整个A函数。由于调用A函数的B没有捕获这个异常,因此B也要退出。异常继续往上传递,现在到了main函数,它里面使用try-catch捕获到了这个异常,因此进入了catch代码块。简而言之就是 throw一个异常会退出这个函数的调用堆栈,直到其上级堆栈有捕获为止。如果都没有捕获,那么程序退出。退出错误为,unhandled exception。

 总结:throw 抛出异常后,程序会跳转到catch处,如果没有匹配的catch,则程序结束。

(4)setjmp的使用:
---------------------------------------
《二》程序终止执行:
C++程序的终止和C语言中的程序终止函数很类似

(1)•从main函数返回


(2)•exit()函数被调用


(3)•abort()函数被调用


(4)•抛出一个未被捕捉到的异常

(5)用户通过Ctrl+C或Ctrl+break操作来终止程序:

注意:利用exit()函数终止的程序,所有已经构造起来的静态对象的析构函数都将被调用,然而,如果程序是调用abort函数终止,那么析构函数都不会被调用。因此在析构函数里调用exit()函数可能会造成无穷递归。

-----------------------------------------------



 

用DELPHI为ASP开发文件上载组件

 用DELPHI为ASP开发文件上载组件 深圳王发军  返回 ASP(Active Server Page)是微软公司的产品,由于它编程很容易上手,能快速开发功能强大的动态网站,现在很多网站(特别是I...
  • ghj1976
  • ghj1976
  • 2001-04-17 16:06:00
  • 1770

C++退出函数exit

exit为C++的退出函数,声明于stdlib.h中,对于C++其标准的头文件为cstdlib,声明为 void exit(int value); exit的功能为,退出当前运行的程序,并将参数v...
  • qq_37275680
  • qq_37275680
  • 2017-08-14 12:18:27
  • 462

如何终止JS继续运行??

终止JS运行有如下几种可能: 终止函数的运行的方式有两种 在函数中使用return,则当遇到return时,函数终止执行,控制权继续向下运行 在函数中使用try-catch异...
  • wkj001
  • wkj001
  • 2016-12-19 23:19:47
  • 3366

终止程序执行的函数

概述C++中,除return语句可以终止函数执行外,还提供多种终止程序的方式,以下是三种常见的终止函数。除此之外,这三种函数还常用于处理系统的异常错误。abort函数函数原型:void abort(v...
  • u011815404
  • u011815404
  • 2018-03-11 12:47:20
  • 93

Linux下C/C++程序处理Ctrl+C的例子

遇到一个场景:程序要读入文件
  • THU_Wm
  • THU_Wm
  • 2014-11-17 01:07:20
  • 3869

C++捕捉关闭控制台应用程序事件

#include #include bool ctrlhandler( DWORD fdwctrltype ) { switch( fdwctrltype ) { ...
  • zx3517288
  • zx3517288
  • 2015-09-19 17:35:40
  • 592

C/C++中退出线程的四种解决方法

退出线程可以有四种方法: 1.线程函数的return返回(最好这样): 其中用线程函数的return返回, 而终止线程是最安全的, 在线程函数return返回后, 会清理函数内申请的类对象, 即调...
  • fantasydreams
  • fantasydreams
  • 2015-05-10 08:34:45
  • 6157

Windows编程 - 终止可执行(exe)程序 代码(C++)

终止可执行(exe)程序 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy终止可执行(exe)程序, 首先遍历进程, 找到进程名称对于的进程ID号, 然...
  • u012515223
  • u012515223
  • 2014-06-08 18:29:52
  • 2868

C++中Exit()与atexit()函数的使用

来源:http://blog.sina.com.cn/s/blog_5cec5bad0100b0x2.html   一、exit()函数 函数声明:void exit(int state); ...
  • sruru
  • sruru
  • 2012-09-04 10:59:09
  • 14965

linux c开发: 在程序退出时进行处理

有时候,希望程序退出时能进行一些处理,比如保存状态,释放一些资源。c语言开发的linux程序,有可能正常退出(exit),有可能异常crash,而异常crash可能是响应了某信号的默认处理。这里总结一...
  • n5
  • n5
  • 2017-08-28 16:40:47
  • 1514
收藏助手
不良信息举报
您举报文章:C++/C程序、函数结束
举报原因:
原因补充:

(最多只允许输入30个字)