错误处理 动态链接 在 Lua 中,动态链接被视为所有其他机制的母机制 因此利用它就可以动态地加载任何其他不在 Lua 中的机制 package.loadlib 所需两个参数 库的完整路径 正确的函数名称 loadlib 函数加载指定的库,并将其链接入 Lua 它没有调用库中的任何函数 而是将一个 ...
分类:
其他好文 时间:
2020-06-30 22:53:58
阅读次数:
66
8.1.1栈展开 抛出异常时,将暂停当前函数的执行,开始查找匹配的catch子句。首先检查throw本身是否在try块内部,如果是,检查与该try相关的catch子句,看是否可以处理该异常。如果不能处理,就退出当前函数,并且释放当前函数的内存并销毁局部对象,继续到上层的调用函数中查找,直到找到一个可 ...
分类:
其他好文 时间:
2019-06-09 00:10:34
阅读次数:
131
阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能分析 阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAI ...
分类:
编程语言 时间:
2018-10-07 15:31:58
阅读次数:
154
C++ 异常机制分析 阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能分析 正文 回到顶部 C++异常机制概述 异常处理是C++的一项语言机制,用于 ...
分类:
编程语言 时间:
2017-09-11 15:43:34
阅读次数:
210
阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能分析 阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开、RAI ...
分类:
编程语言 时间:
2017-09-02 09:39:45
阅读次数:
3200
try块可以嵌套使用,当try内部模块中为捕获到异常时,传播到外部捕获。当内层已经捕获异常时,将不再传播到外层。当需要传播到外层时,需要内部捕获该异常后,重新再抛出异常,就可以传播到外面。注意重新抛出异常的时候会调用拷贝构造函数。 当异常均未被捕获时,将调用terminate函数,terminate ...
分类:
编程语言 时间:
2017-03-27 19:41:19
阅读次数:
183
抛出异常时,将暂停当前函数的执行,开始查找匹配的catch子句。首先检查throw本身是否在try块内部,如果是,检查与该try相关的catch子句,看是否可以处理该异常。如果不能处理,就退出当前函数,并且释放当前函数的内存并销毁局部对象,继续到上层的调用函数中查找,直到找到一个可以处理该异常的ca
1. ”两种情况下destructor会被调用。第一种情况是当对象在正常情况下被销毁,也就是当它离开了它的生存空间或是被明确的删除;第二种情况是当对象被exception处理机制——也就是exception传播过程中的stack-unwinding(栈展开)机制——销毁。”2. 当destructo...
分类:
编程语言 时间:
2015-06-26 21:07:12
阅读次数:
167
梳理老罗win32汇编关于SEH一章的知识。
异常处理方式有两种: 筛选器异常处理和结构化异常处理,筛选器是全局性的,无法为一个线程或一个子程序单独设置一个异常处理回调函数,而结构化异常处理(Structured Exception Handing)SEH提供了每个线程之间独立的异常处理方法。
以下以两个例子来学习SEH
例子1:不含栈展开操作的异常处理(栈展开会在例子二中介绍)
.386...
分类:
其他好文 时间:
2015-06-17 21:52:27
阅读次数:
358
1. auto_ptr
auto_ptr 是C++标准库提供的类模板,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同时被分给两个拥有者。当auto_ptr对象生命周期结束时,其析构函数会将auto_ptr对象拥有的动态内存自动释放。即使发生异常,通过异常的栈展开过程也能将动态内存释放。auto_ptr不支持new
数组。
2. auto_...
分类:
编程语言 时间:
2015-01-14 09:46:08
阅读次数:
263