C++的try在catch后跳转到异常发生处吗
2010-10-14 21:38
519 查看
一般情况如上代码异常发生后跳转到catch块内,然后执行catch块后面的代码。
有没有办法回到异常发生的地方,即“*p = 'c';// 异常处”这行
__try,__except能做到,但因为不允许局部变量有析构所以在项目中不能使用,只能用try,catch
__try,__except是特定编译器的扩展吧?
就我的知识而言,标准的try,catch无法满足你的要求。
C++无视所有系统层面的异常.只有throw出来的它才可以catch
而__try __except __finally是MS的SEH机制.可以处理系统层面的异常.但不能很好的处理C++的异常.
MS的编译器在同一个函数级别里无法同时使用try catch和SEH.当然,你可以自己实现一个CRT,把C++异常和SEH合并,然后用try catch来处理所有的异常.
已经catch了就说明程序挂了,catch中一般只是去做一些内存的释放处理。
正确的程序应该是保证不进catch的。已经错了又怎么能回到错误之前呢。
当我们到达某一结点准备调整以该结点为根结点的子树时,
先调整其左子树将左子树转换成一个排好序的左子链表,再调整其右子树转换右子链表。
最近链接左子链表的最右结点(左子树的最大结点)、当前结点和右子链表的最左结点(右子树的最小结点)。
从树的根结点开始递归调整所有结点。
我们可以中序遍历整棵树。按照这个方式遍历树,比较小的结点先访问。
如果我们每访问一个结点,假设之前访问过的结点已经调整成一个排序双向链表,
我们再把调整当前结点的指针将其链接到链表的末尾。
当所有结点都访问过之后,整棵树也就转换成一个排序双向链表了。
把二元查找树转换成链表.其实我们就以为二元查找树为基础.因为左孩子节点小于跟节点,跟节点小于右孩子节点,所以我们就对二员查找树进行遍历.然后首先找出最小的节点,把该节点加入到链表中.然后调整二元查找树,在把最小的节点给加入到树中.其实有更好的算法.就是每次把可以加入的都加入进去在调整二元查找树,但是在工作,没有时间写算法.
谢谢你的收藏。但请你和后来看到此贴的各位
不要再回复如“mark”,“支持”,“好贴收藏”之类的了。
我更需要的是各位自己对题目本身的思路 和想法。谢谢。
★用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。
★用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。
★用一种算法整理一个数组。你为什么选择这种方法?
★用一种算法使通用字符串相匹配。
★颠倒一个字符串。优化速度。优化空间。
★颠倒一个句子中的词的顺序,比如将“我叫克丽丝”转换为“克丽丝叫我”,实现速度最快,移动最少。
★找到一个子字符串。优化速度。优化空间。
★比较两个字符串,用O(n)时间和恒量空间。
来源:英超直播
有没有办法回到异常发生的地方,即“*p = 'c';// 异常处”这行
__try,__except能做到,但因为不允许局部变量有析构所以在项目中不能使用,只能用try,catch
__try,__except是特定编译器的扩展吧?
就我的知识而言,标准的try,catch无法满足你的要求。
C++无视所有系统层面的异常.只有throw出来的它才可以catch
而__try __except __finally是MS的SEH机制.可以处理系统层面的异常.但不能很好的处理C++的异常.
MS的编译器在同一个函数级别里无法同时使用try catch和SEH.当然,你可以自己实现一个CRT,把C++异常和SEH合并,然后用try catch来处理所有的异常.
已经catch了就说明程序挂了,catch中一般只是去做一些内存的释放处理。
正确的程序应该是保证不进catch的。已经错了又怎么能回到错误之前呢。
当我们到达某一结点准备调整以该结点为根结点的子树时,
先调整其左子树将左子树转换成一个排好序的左子链表,再调整其右子树转换右子链表。
最近链接左子链表的最右结点(左子树的最大结点)、当前结点和右子链表的最左结点(右子树的最小结点)。
从树的根结点开始递归调整所有结点。
我们可以中序遍历整棵树。按照这个方式遍历树,比较小的结点先访问。
如果我们每访问一个结点,假设之前访问过的结点已经调整成一个排序双向链表,
我们再把调整当前结点的指针将其链接到链表的末尾。
当所有结点都访问过之后,整棵树也就转换成一个排序双向链表了。
把二元查找树转换成链表.其实我们就以为二元查找树为基础.因为左孩子节点小于跟节点,跟节点小于右孩子节点,所以我们就对二员查找树进行遍历.然后首先找出最小的节点,把该节点加入到链表中.然后调整二元查找树,在把最小的节点给加入到树中.其实有更好的算法.就是每次把可以加入的都加入进去在调整二元查找树,但是在工作,没有时间写算法.
谢谢你的收藏。但请你和后来看到此贴的各位
不要再回复如“mark”,“支持”,“好贴收藏”之类的了。
我更需要的是各位自己对题目本身的思路 和想法。谢谢。
★用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。
★用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。
★用一种算法整理一个数组。你为什么选择这种方法?
★用一种算法使通用字符串相匹配。
★颠倒一个字符串。优化速度。优化空间。
★颠倒一个句子中的词的顺序,比如将“我叫克丽丝”转换为“克丽丝叫我”,实现速度最快,移动最少。
★找到一个子字符串。优化速度。优化空间。
★比较两个字符串,用O(n)时间和恒量空间。
来源:英超直播
相关文章推荐
- C++异常处理: try,catch,throw,finally的用法
- C++中try_catch_throw的做异常处理用法
- 关于c++异常的初接触try{}catch{}
- C++异常处理 - try,catch,throw,finally的用法
- C++的try_catch异常
- c++中的异常捕捉:try和catch
- 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
- C++ - 异常处理:try,catch,throw,finally的用法
- C++异常处理:try,catch,throw,finally的用法
- C++处理异常技巧-try,catch,throw,finally
- 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
- C++中的异常处理模块--try, throw, catch总结
- C++的try_catch异常
- 异常语句:try(尝试)-catch(抓取)-finally 跳转语句:break
- C++中的异常控制 try,catch 用法整理
- 二十一天学通C++之使用try/catch捕获异常
- 总结 (1) C++异常模型用try-catch语法定义,而SEH异常模型则用try-except语法;
- C++中异常处理try-throw-catch
- C++异常处理:try,catch,throw,finally的用法