装配中的脑袋

用程序装配大脑,再用大脑装配程序
随笔 - 118, 评论 - 1214, 引用 - 11

导航

工具

关于

如果想发较大的信件,请用Ninputer @ gmail.com

不要在我的Blog评论中张贴广告,除非同意向我付款。

标签

每月存档

广告



访客

 

关键词:VB2005 VB.NET Whidbey VB8.0 C#

在使用Visual Basic .NET开发的过程中,我们都有以下经验,那就是VB.NET在编译错误方面给出的帮助很详细,可以很方便地找到解决问题的方法,但运行时错误就差多了,比如我们书写了下面的代码:

Dim b As Button
b.Text = "Hello"

当代码运行到此处时,只会弹出下面这样一个窗体:

一句“未将对象引用设置到对象实例”难倒了多少人。对于初学者,他们根本不知道这意味着什么,更不要提解决问题了。不要指望那个“帮助”按钮有什么帮助,他只是解释一下什么叫异常窗口,声么叫“中断”等等毫无关系的内容。这样的异常窗口对开发着的帮助实在非常有限,他甚至不能链接到关于异常类的文档。这样的异常窗口甚至不如VB6提供的信息多,这导致更多VB6程序员在升级到VB.NET时遇到阻碍。Visual Basic 2005以及在Visual Studio 2005中的C#和J#语言新增了异常助手功能,很大程度上解决了这个问题。如果我们在VB2005中输入上述代码,运行时将得到如下一个窗口:

这就是异常助手,他分为三个部分:首先像VB.NET一样提供了异常对象所附带的信息,再有就是两个新的部分:Troubleshooting Tips和Actions。Troubleshooting Tips是关于异常的帮助,不仅仅是异常类的文档,还有特定语言如何解决问题的指南。比如NullReferenceException就提供了一篇Troubleshooting NullReferenceException Exceptions ,其内容摘录如下:

Use the New keyword to create the instance. You may have tried to use an object without providing an instance of the object. For example, Dim CustomerTable As DataTable should be rewritten as Dim CustomerTable As New DataTable.

Include a code block that checks for null references. Programmatically check to determine if a function has returned null (Nothingin Visual Basic) instead of an instance of an object.

Explicitly catch NullReferenceException in a Try…Catch…Finally statement. A Try…Catch…Finally statement can check for specific types of exceptions, going from most specific to least specific.

比起VB.NET毫无帮助的信息,这条信息已经人性化多了,最起码它能建议进行空引用的检查、使用New关键字和使用Try语句等常用的手段。

异常助手对于开发者的帮助是很大的,比如安全性导致的异常通常都十分棘手,因为许多不同的代码都可以导致同一条安全性异常,这样即使查阅异常相关的文档也难以发现问题所在。而异常助手给出了非常详细的帮助,在Troubleshooting提示部分给出了大量链接:

Action部分是可以自动执行的任务,目前的版本,Action主要的功能是启动异常细节窗口,这比使用狭窄的“本地”窗口来查看异常对象的信息要舒适多了。异常助手给开发者带来了巨大的方便,用好这项功能,能使开发效率进一步的提升。异常助手如果结合“编辑后继续运行”来使用,将焕发难以置信的效率,我们下次就介绍“编辑后继续运行”。


随贴广告(测试期)
相关文章

打印 | 张贴于 2004-06-19 00:37:00 | Tag:技术随笔  Visual Basic 2005 新功能点评

留言反馈

re: Visual Basic 2005新功能点评(十)——异常助手 编辑
未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中.
我也有这个问题~~~
寻求讲解ing!!帮帮忙~~谢谢~
2004-11-30 23:43:00 | [匿名用户:DYJ]
re: Visual Basic 2005新功能点评(十)——异常助手 编辑
z
2004-10-06 17:22:00 | [匿名用户:z]
回复: Visual Basic 2005新功能点评(十)——异常助手 编辑
请问一下,未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中
这个问题怎样解决。
十万火急!
2004-07-13 15:24:00 | [匿名用户:wl]
回复: Visual Basic 2005新功能点评(十)——异常助手 编辑
装配脑袋:
你的点评真的很棒!
这个东东我用时并不觉得怎么好。被你这一介绍好,感觉好多了。
什么时候,也帮介绍一下我们数据组的东东呢?
顺便说一句,你的名字起得真好!
2004-06-22 01:55:00 | [匿名用户:Zhiyong]
回复: Visual Basic 2005新功能点评(十)——异常助手 编辑
酷毙了!
2004-06-19 18:16:00 | [匿名用户:zhengyun]
回复: Visual Basic 2005新功能点评(十)——异常助手 编辑
dataAdapter.Fill(dataSet);
如果sql语句 或 存储过程 执行有错误,会给什么样的提示?
2k3只给一个 "系统错误"
2004-06-19 13:44:00 | [匿名用户:Johnny Hu]
回复: Visual Basic 2005新功能点评(十)——异常助手 编辑
点评已经到十了!
继续努力!
2004-06-19 12:04:00 | [匿名用户:孙展波]
回复: Visual Basic 2005新功能点评(十)——异常助手 编辑
这个功能很好!!
2003的异常有时还有些异常错误提示,只是说明不能创建对象,要么就是AUTOMATION不能创建对象,还有就是有错误,提示些没有相关代码等.真叫人不知所错啊!!!
不过VBNET我还是希望把它的DATAGRID功能增强,就象PB的WINDOWDATA控件一样!!!
水晶报表功能在生成程序后安装了也要出错误,要么就是用不起,唉,望VBNET在简便的同时稳定性也要提高啊!!
2004-06-19 10:16:00 | [匿名用户:ZJH135]
博客主人设置本博客不允许匿名用户发表言论,请登录后再试

Powered by: Joycode MVC Blogger System