.NET 开发中容易被忽略的问题--MDA

 

以前,我们的开发人员和测试人员有时会发现一些类似下图的异常。

这些异常的发生往往都是看起来很随机,很难重现的。调用堆栈往往是空的。并且,当程序脱离IDE运行时,都不会发生这些异常。因此,我们经常认为这些异常是IDE的Bug导致。很少在意。(至少我以前是这样)

今天详细的看了一下MSDN中关于MDA的介绍。发现这些问题往往都是很重要的和潜在的问题。比如:PInvokeStackImbalance这个MDA能够帮助我们发现PInvoke的声明有问题。StreamWriterBufferedDataLost这个MDA可以帮助我们发现我们忘记调用StreamWriter.Close()方法。

因为很多MDA异常的触发都是在GC回收时进行的,因此表现比较随机。较难重现。

如果你希望自己控制监视哪些MDA异常,可以使用IDE中的Debug->Exceptions->Managing Debugging Assistants来选择捕获哪些MDA异常。如下图:

posted @ 2007-08-15 18:56 Colin Han 阅读(924) 评论(3)  编辑 收藏 所属分类: 基本技术

  回复  引用  查看    
#1楼 2007-08-15 20:40 | 木野狐(Neil Chen)      
还以为是 Model Driven Architecture
  回复  引用    
#2楼 2007-08-15 20:46 | lathers [未注册用户]
搞笑,这样的都当作IDE的bug
  回复  引用  查看    
#3楼 2007-08-29 09:42 | salough      
上次你对我创建的投票数据库进行了重构的说法,我想好像并不能合并,现在我举了例子,你再帮我看看。
地址 http://www.cnblogs.com/salough/archive/2007/08/20/vote.html


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-15 19:10 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: