[散分]vb达人请进,关于错误处理和内存释放

zhangwh6882 2003-03-05 01:58:46
说来惭愧,小弟用vb编程数月,现在才开始注意到错误处理和内存释放的重要性。无奈在这方面所知甚少。希望各位高手帮帮忙,把大家在错误处理和内存释放方面的技巧共享出来。只要是这方面相关的知识就行,小弟这里先谢过了^-^
在此转贴一点资料,抛砖引玉
错误处理(未定)

在Main()函数或主窗体Load过程中添加如下代码:

'******************************************************

'

'打开错误日志文件,在Form_Unload()中关闭

'

'******************************************************



Dim strExePath As String

If Right(App.Path, 1) = "\" Then

strExePath = App.Path

Else

strExePath = App.Path & "\"

End If

intErrLogFileHandle = FreeFile()

Open strExePath + "Err.log" For Append Shared As intErrLogFileHandle



在主窗体退出函数中添加如下代码:

'******************************************************

'

'关闭错误日志文件

'

'******************************************************



Close #intErrLogFileHandle



在某个Module中添加:

'******************************************************

'

'写入错误日志

'

'******************************************************

Public Sub WriteErrLogFile(ByVal strSub As String, ByVal strErr As String)

Print #intErrLogFileHandle, Date, Time, strSub, strErr

End Sub



在每个过程或自定义的函数中,使用如下的系统错误捕获机制:

Public Function ForExample(…………) As Long



On Error Goto FuncError



ForExample=True



………………………

………………………



Exit Function



FuncError:

ForExample=False

WriteErrLogFile " ForExample ", "错误号:" & Err.Number & ",错误源:" & Err.Source & ",错误描述:" & Err.Description

MsgBox "……… ", vbCritical

'在此作内存资源回收工作



End Function

...全文
23 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rghjf 2003-03-10
on error goto Err:
.....
Err:
msgbox "..."


set object = nothing
回复
zhangwh6882 2003-03-07
没人能说的详细具体一些么?
介绍一下相关的经验、技巧呀高手们!
回复
chenyu5188 2003-03-07
对象型的释放用:
set 对象名=nothing

回复
up
回复
Kain 2003-03-06
vb 中的资源回收很不好,比如对excel的应用,很难释放掉。
显示回收载程序重视在不知道放到哪里好
不知那位高手有很好的方法
回复
zhangwh6882 2003-03-06
AechoJohn(江江)
特别是关于Object的东西,只要有一个对象变量引用时,你在FormUnload事件中就不能把其自动卸载。建议在过程或函数中创建的对象在退出当前过程或函数时都显式的把其卸载掉。

能举个例子么?
回复
xinshou1979330 2003-03-06
学习
关注
UP
回复
fule 2003-03-06
看不懂
回复
zhangwh6882 2003-03-06
up
回复
物欲添彩 2003-03-05
set ..= nothing
set ..=empty
set ..=null
回复
Sean918 2003-03-05
set object = nothing

回复
gang75 2003-03-05
gz
回复
verybelial 2003-03-05
对,如何释放?
回复
AechoJohn 2003-03-05
特别是关于Object的东西,只要有一个对象变量引用时,你在FormUnload事件中就不能把其自动卸载。建议在过程或函数中创建的对象在退出当前过程或函数时都显式的把其卸载掉。
回复
雨谦飞扬 2003-03-05
特别是unload不能完全释放。
回复
ketao_78 2003-03-05
我也纳闷,怎么释放内存才是合理的~!
回复
happybeyond 2003-03-05
up
回复
zhangwh6882 2003-03-05
谢谢楼上的几位,不过我问的不是怎样进行错误处理,而是怎样更好地进行错误处理。
关于释放内存我倒是了解很少,希望能有达人在这两方面多谈谈自己的经验
回复
linfuyong 2003-03-05
on error goto errNo

errNo:
msgbox error.number

on error resume next

可以处理大多数情况

回复
freezx 2003-03-05
static 用它定义的变量不释放,
dim定义的释放
编写的时尽量减少步骤麻烦,以免运行时占用内存
回复
加载更多回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-03-05 01:58
社区公告
暂无公告