RBS*_*RBS 15 vb6 error-handling
我有VB6应用程序,我想在其中放入一些好的错误处理功能,它可以告诉我错误是什么,确切地点发生时,有人可以建议这样做的好方法
Kri*_*son 29
首先,获取Visual Basic 6的MZTools,它是免费且无价的.第二,在每个函数上添加一个自定义错误处理程序(是的,每个函数).我们使用的错误处理程序看起来像这样:
On Error GoTo {PROCEDURE_NAME}_Error
{PROCEDURE_BODY}
On Error GoTo 0
Exit {PROCEDURE_TYPE}
{PROCEDURE_NAME}_Error:
LogError "Error " & Err.Number & " (" & Err.Description & ") in line " & Erl & _
", in procedure {PROCEDURE_NAME} of {MODULE_TYPE} {MODULE_NAME}"
Run Code Online (Sandbox Code Playgroud)
然后创建一个LogError函数,将错误记录到光盘.接下来,在您发布代码之前,为每个函数添加行号(这也包含在MZTools中).从现在开始,您将从错误日志中了解发生的所有事情.如果可能,还要上传错误日志并实际从现场检查它们.
这是关于VB6中的意外全局错误处理(其中许多缺陷之一)所能做的最好的事情,实际上这应该仅用于查找意外错误.如果您知道如果在某种情况下可能发生错误,您应该捕获该特定错误并处理它.如果您知道某个部分中发生的错误将导致不稳定(文件IO,内存问题等)警告用户并且知道您处于"未知状态"并且"坏事"可能会发生.显然使用友好的术语来保持用户的信息,但不要害怕.
小智 12
没有附加模块的简单方法,对类模块很有用:
抢占每个函数/ subs:
On Error Goto Handler
Run Code Online (Sandbox Code Playgroud)
处理器/ bubbleup:
Handler:
Err.Raise Err.Number, "(function_name)->" & Err.source, Err.Description
Run Code Online (Sandbox Code Playgroud)
瞧,贫民区堆栈痕迹.
| 归档时间: |
|
| 查看次数: |
19856 次 |
| 最近记录: |