当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

C语言异常处理和结构化异常处理有什么区别?

发表于: 2014-03-26   作者:aigo   来源:转载   浏览:
摘要: 原文:http://jsj.nhjsj.net/nh12/Cstudy/ShowArticle.asp?ArticleID=42 总的来说,结构化异常处理和异常处理之间的区别就是Microsoft对异常处理程序在实现上的不同。所谓的“普通”C++异常处理使用了三条附加的c++语句:try,catch和throw。这些语句的作用是,当正在执行的程序出现异常情况时,允许一个程序(异常处理程序)试着找

原文:http://jsj.nhjsj.net/nh12/Cstudy/ShowArticle.asp?ArticleID=42

总的来说,结构化异常处理和异常处理之间的区别就是Microsoft对异常处理程序在实现上的不同。所谓的“普通”C++异常处理使用了三条附加的c++语句:try,catch和throw。这些语句的作用是,当正在执行的程序出现异常情况时,允许一个程序(异常处理程序)试着找到该程序的一个安全出口。异常处理程序可以捕获任何数据类型上的异常情况,包括C++类。这三条语句的实现是以针对异常处理的ISO WG21/ANSI X3J16 C++标准为基础的,Microsoft C++支持基于这个标准的异常处理。注意,这个标准只适用于C++,而不适用于C。

结构化异常处理是Microsoft c/c++编译程序的一种功能扩充,它的最大好处就是它对C和C++都适用。Microsoft的结构化异常处理使用了两种新的结构:try—except和try-finally。这两种结构既不是ANSI c++标准的子集,也不是它的父集,而是异常处理的另一种实现(Microsoft会继续在这方面努力的)。try—except结构被称为异常处理(exception handling),tryfinally结构被称为终止处理(termination handling)。try—except语句允许应用程序检索发生异常情况时的机器状态,在向用户显示出错信息时,或者在调试程序时,它能带来很大的方便。在程序的正常执行被中断时,try—finally语句使应用程序能确保去执行清理程序。尽管结构化异常处理有它的优点,但它也有缺点——它不是一种ANSI标准,因此,与使用ANSI异常处理的程序相比,使用结构化异常处理的程序的可移植性要差一些。如果你想编写一个真正的C++应用程序,那么你最好使用ANSI异常处理(即使用try,catch和throw语句)。

C语言异常处理和结构化异常处理有什么区别?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号