VB:如何从全局的角度捕捉每处可能发生的异常?
是这样的,我写的VB程序有很多窗口、模块等,内容一多就会出现各种设计时没有预料到的异常情况,直接导致程序运行时无条件结束,比如读取了一个不存在的文件等等。
我虽然对可能出现异常情况的地方都设置了错误陷阱或预先判断等方式来阻止异常发生,无奈仍然不能做到100%防错。
问题来了:能否在某个地方全局性监控每处可能发生的异常,也就是不管程序执行到哪里,只要发生异常就能被全局监控点监控到,然后我就可以进行相应的错误处理程序了。
请问如何实现?请君不吝赐教,谢谢。
[解决办法]
这样是不太科学的。
介绍一个简单的办法,如果你觉得处理错误麻烦,那你在大多数地方就干脆不要处理错误或者直接把错误升起,前提是用户不会直接跟这些过程打交道。在用户可以直接控制的地方处理错误,如控件事件(由用户引发)等
[解决办法]
他的意思就是用on error resume next
这样就不用错误处理了
其实你如果从全局的角度来处理错误
就跟没处理差不多
肯定不好
[解决办法]
不过好象有个专门讲错误处理的
提到过你说的错误处理模块
在 vb编程标准里面提到的
http://book1.ibook8.com/ibook8com/book/xin005/vb%20biancbiaozhun.rar
下载地址
是pdf的
里面专门讲了如何统一错误处理
你看一下吧
[解决办法]
楼上理解错了,On Error Resume Next 跟不处理错误是两回事。
要么根本就不写处理错误的代码,要么直接升起错误,如
Err.Raise Err.Number,Err.Source,Err.Description
[解决办法]
如果所有错误一概处理,往往会导到程序死掉.你的程序一开始做的时候就应该去处理相应的错了.
[解决办法]
还是要考虑好了,设计不到位
[解决办法]
唉!楼主还没明白我的意思。
如果你的程序不直接跟用户打交道的话,那你就干脆不要处理错误,这个错误会向上传递到有错误处理的调用者中,假如某个过程产生了错误并且该过程有相应的错误处理程序,那么该过程的调用者并不知道有错误产生,因为错误已经被处理掉了。并不是每个过程里都需要处理错误,而是每个错误都会在适当的时候来处理。
建议你仔细了解一下vb里的错误处理机制。
[解决办法]
有一个办法就是将程序的入口放在MAIN()方法中,在该方法中增加错误捕获代码,可以使程序不至于崩溃,如果想知道错误是在哪个类的哪个方法中,目前没有好办法
可以自己写段代码对源程序进行分析,在错误处理代码部分写上其所在的文件名及方法名
可要求仍然是需要给每段代码都加错误捕获
其实只要用户能给出是进行哪个操作发生的错误,应该容易找出错误的来源的.
[解决办法]
那是遥远的n年前,我曾经研究过一段时间vb的错误处理机制,那时候也想搞一个全局错误处理的东西,但是,毅力这个东西可真不是什么人都有的,折腾一段时间后我就转而搞其他东西去了...
http://topic.csdn.net/T/20040418/21/2980639.html
和
http://topic.csdn.net/T/20040422/15/2996717.html
是当年的两个主要的相关帖子
源代码在这里:
http://econet.zjgsu.edu.cn/cy%5Ffilesxxx/vbsrc/vbanycall.rar
[解决办法]
..............................................................