[导入]对编写安全的代码这个方法有用吗?
2004-12-15 17:49
253 查看
我又突发奇想了。
如果可以方便的添加一下try catch在你的代码里。能用来做什么呢?
定义了SAFE_FUNCTION这个宏之后,每次定义一个函数都使用这个宏,那么这些函数都被自动的加上了一个try catch对。可惜对于调试工具来说,错误定位却困难了...
没试过其他的,vc只能跟踪到使用SAFE_FUNCTION定义函数的末尾一行。而且一步就跨越过去了。
目前还没有想到有什么用处。也许同一模块的函数具有相同的出错处理的话,可以使用这个宏。修改catch段的处理方式,甚至再用一个宏
这样,在不同模块的处理可以是不同的。
( 网页浏览 )
文章来源:http://acm.tongji.edu.cn/people/kaikai/blog/blog.php?job=art&articleid=a_20041125_142918
如果可以方便的添加一下try catch在你的代码里。能用来做什么呢?
Code: |
#include #include #ifdef USE_SAFE # define SAFE_FUNCTION(foo,b) foo \ { \ try{ \ b \ } \ catch(...) \ { \ assert(0 && #foo ); \ } \ } #else # define SAFE_FUNCTION(foo,b) foo \ { \ b\ } #endif SAFE_FUNCTION( int foo(int a,int b) , assert(b!=0 && "hi"); printf("%d\n",a/b); return 0; ) int main() { foo(1,1); foo(1,0); return 0; } |
没试过其他的,vc只能跟踪到使用SAFE_FUNCTION定义函数的末尾一行。而且一步就跨越过去了。
目前还没有想到有什么用处。也许同一模块的函数具有相同的出错处理的话,可以使用这个宏。修改catch段的处理方式,甚至再用一个宏
Code: |
#ifdef USE_SAFE # define SAFE_FUNCTION(foo,b,error) foo \ { \ try{ \ b \ } \ catch(...) \ { \ error \ } \ } #else # define SAFE_FUNCTION(foo,b,error) foo \ { \ b\ } #endif #define DEF_SAFE_FUNCTION(foo,b) SAFE_FUNCTION(foo, b, assert(0 && #foo)) #define ANOTHER_SAFE_FUNCTION(foo,b) SAFE_FUNCTION(foo, b, \ printf("Error in %s\n", #foo); \ ) |
( 网页浏览 )
文章来源:http://acm.tongji.edu.cn/people/kaikai/blog/blog.php?job=art&articleid=a_20041125_142918
相关文章推荐
- 编写安全的代码(ACL使用方法)
- 10_9_1编写代码,定义一个基类MyClass,其中包括虚礼方法GetString(),这个方法返回存储在受保护字段myString中的字符串,该字段可以通过只写公共属性ContainedStrin
- 《编写高质量iOS与OS X代码的52个有效方法》之第三章要点
- excel表数据导入oracle的方法!(超级有用)
- 编写高质量iOS和OS X代码的52个有效方法(笔记一)
- 编写高质量iOS和OS X代码的52个有效方法(笔记七)
- J2EE开发中减少编写代码工作量的几种方法
- 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》 笔记3 为什么要用属性
- 编写安全代码——小心有符号数的右移操作
- 编写安全代码:不要在头文件中定义变量
- 读《编写高质量iOS与OS X代码的52个有效方法》心得
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次,编写代码找出数组中的某个元素
- C# 编写不安全代码
- 编写安全的代码的一些技巧 C++
- 《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》--读书笔记
- 用Delphi7编写代码时出现"dcc70.dll"调用失败的处理方法
- 一篇文章拿下《Effective Objective C 2 0编写高质量iOS与OS X代码的52个有效方法》
- 编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议36~40)
- 第一次编写简单的中间件测试工具(2) - 读代码的方法
- 利用反射机制编写一个程序,这个程序能指定调用类的某个方法及构造方法,并把操作信息输出到控制台。