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()函数可能会造成无穷递归。

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



 

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

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

c/c++ 结束进程的方法

1.使用ExitProcess()结束进程      进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的。当主线程的进入点函数返回时,进程也就随之结束。这种进程的终止方...
  • Iamduoluo
  • Iamduoluo
  • 2011年08月10日 20:31
  • 11451

c++重拾

while (std::cin >> value) { } 输入流会判断是否为EOF来结束数据流。 ctr
  • hvhvhwhw_xd
  • hvhvhwhw_xd
  • 2014年11月21日 00:41
  • 377

C++代码启动程序关闭程序

  • 2012年02月08日 22:13
  • 758B
  • 下载

管理线程之等待线程结束

在看《Cplusplus Concurrency in Action Practical Multithreading》。记录一下学习过程,这是第二章等待线程结束部分...
  • KangRoger
  • KangRoger
  • 2014年10月09日 15:56
  • 4790

c/c++成长之捷径

c/c++成长之捷径           c++成长之路不再迷茫!           不知不觉中进入计算机行业已有多个年头了,回首往事依然历历在目。今天我把我这段时间收集的书...
  • zhaodan19861107
  • zhaodan19861107
  • 2014年05月20日 11:20
  • 5090

希望痛苦的日子早些结束

三天前,我把我的亲爱的本本丢了,心情弄的很糟.今天在别人的电脑前想用文字记录下这件事情和现在的心情.我不想被别人认为呆,想做出一些事情,为什么要学些社会经验?我想因为我是社会的一部分吧.考研即将开始,...
  • IvenZhang
  • IvenZhang
  • 2006年08月28日 21:15
  • 454

C++多线程-第三篇-Thread(线程)

Thread //Boost #include #define BOOST_THREAD_VERSION 4 //使用最新版本,含有1,2,3但只是为了兼容之前程序。 Thread库丰富强大的...
  • hffhjh111
  • hffhjh111
  • 2016年11月12日 16:34
  • 7589

c++如何判断输入结束

 关于不确定行数的输入 有些时候 ,问题并没有给定输入数据的行数,也没有给出输入结束的标记。 问题1:将字符串大写变小写,小写变大写   输入:n行字符串,每一行字符串不超过300   ...
  • u012496793
  • u012496793
  • 2014年03月19日 18:45
  • 4917
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++/C程序、函数结束
举报原因:
原因补充:

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