`

VB6中的ErrorHelper

 
阅读更多

今天还是修改原先VB6处理的程序,在错误处理方面需要一些改进,弄了一个ErrorHelper的类,还是有点用处的,存到这里吧.

Option Explicit

Private m_Continue As Boolean

Private m_MessageString As String

Private m_DisplayDetailErrInfo As Boolean

Public Event onError()

'解析错误对象
'
DefaultMessageString:显示的提示消息,如果为空则显示缺省消息
'
frm:处理卸载窗体,可选
Public Function Parse()Function Parse(Optional DefaultMessageString As StringOptional frm As Form)
    
Select Case Err.Number
        
Case 0
            m_Continue 
= False
        
Case Else
            
If IsMissing(DefaultMessageString) Or Len(DefaultMessageString) = 0 Then
                
If m_DisplayDetailErrInfo Then
                    
MsgBox MergeMessage(DefaultMessage), vbCritical, "提示"
                Else
                    
MsgBox DefaultMessage, vbCritical, "提示"
                End If
            
Else
                
If m_DisplayDetailErrInfo Then
                    
MsgBox MergeMessage(DefaultMessageString), vbCritical, "提示"
                Else
                    
MsgBox DefaultMessageString, vbCritical, "提示"
                End If
            
End If
            
If Not IsMissing(frm) Then
                ExitForm frm
            
End If
            m_Continue 
= True
            
RaiseEvent onError
    
End Select
    Err.Clear
End Function


'处理完错误后是否进行其他处理
Public Property Get()Property Get Continue() As Boolean
    Continue 
= m_Continue
End Property


'缺省消息
Public Property Get()Property Get DefaultMessage() As String
    DefaultMessage 
= m_MessageString
End Property


Public Property Let()Property Let DefaultMessage(ByVal MessageString As String)
    m_MessageString 
= MessageString
End Property


'卸载窗口
Public Sub ExitForm()Sub ExitForm(frm As Form)
    
If Not frm Is Nothing Then Unload frm
End Sub


'是否显示错误消息
Public Property Get()Property Get DisplayDetailErrInfo() As Boolean
    DisplayDetailErrInfo 
= m_DisplayDetailErrInfo
End Property


Public Property Let()Property Let DisplayDetailErrInfo(ByVal Display As Boolean)
    m_DisplayDetailErrInfo 
= Display
End Property


'合并消息
Private Function MergeMessage()Function MergeMessage(Message As StringAs String
    MergeMessage 
= MergeString("消息:" & Message, vbCrLf, "编号:", Err.Number, vbCrLf, "说明:", Err.Description)
End Function


'合并字符串
Private Function MergeString()Function MergeString(ParamArray arg()) As String
    
Dim i As Integer
    
For i = 0 To UBound(arg())
        MergeString 
= MergeString & arg(i)
    
Next
End Function


Private Sub Class_Initialize()Sub Class_Initialize()
    
Me.DefaultMessage = "数据产生冲突,请重新进入该功能."
    Me.DisplayDetailErrInfo = False
End Sub


'退出整个系统
Public Sub ExitSystem()Sub ExitSystem()
    
MsgBox "产生致命错误,系统即将关闭.", vbCritical, "提示"
    End
End Sub

测试代码:
Dim WithEvents eh As ErrorHelper

Private Sub Command1_Click()Sub Command1_Click()
#
If ErrorOnOff = 0 Then
    
On Error GoTo onErrors
#
End If
    Err.Raise 
100
    
MsgBox "OK"
onErrors:
    eh.Parse
    
'If eh.Continue Then eh.ExitSystem
    'If eh.Continue Then Resume Next
End Sub


Private Sub eh_onError()Sub eh_onError()
    Unload 
Me
End Sub


Private Sub Form_Load()Sub Form_Load()
    
Set eh = New ErrorHelper
End Sub


通过这些代码可以节约一些重复代码的数量,作为一个小的底层错误处理机制应该还可以.
分享到:
评论

相关推荐

    VB6-FormatCode.rar_CodeFormat.dll_VB FormatCode_VB6插件_vb6 format

    总的来说,"VB6-FormatCode"插件是VB6开发者不可或缺的辅助工具,它的出现解决了VB6环境中代码格式化的问题,提升了开发体验,也保证了代码的整洁和一致性。无论是个人开发还是团队协作,它都能够发挥重要作用,帮助...

    AutoCode-for-VB6.0.rar_AutoCode for VB6_AutoCode_VB6.0_autocode

    安装与使用AutoCode for VB6.0时,用户需要将压缩包中的"AutoCode for VB6.0"文件解压,并按照提供的说明将组件整合到VB6的IDE中,通常这涉及导入自定义组件或者注册相关DLL文件。一旦设置完毕,用户就可以在VB6的...

    VB6 webbrowser加载Word 附送VB基础入门教程

    WebBrowser控件是VB6中的一个强大组件,它允许开发者在应用程序中嵌入一个Internet Explorer实例,从而实现浏览网页的功能。这个"VB6 Webbrowser加载Word"的主题涉及到如何利用WebBrowser控件来打开和显示Microsoft ...

    vb6sp6完整安装包

    VB6(Visual Basic 6)是微软公司推出的一款经典的可视化编程环境,主要用于开发Windows桌面应用程序。...尽管VB6已经不再得到微软的官方支持,但在某些领域,尤其是企业内部的遗留系统中,VB6仍然是不可或缺的工具。

    vb vb6 vb6.0 dde 通信 绝对可用 伪多线程 进程外 源码

    标题中的“vb vb6 vb6.0 dde 通信 绝对可用 伪多线程 进程外 源码”指的是一个使用Visual Basic 6 (VB6)编程语言开发的程序,该程序利用动态数据交换(Dynamic Data Exchange, DDE)技术进行进程间的通信,并且实现...

    VB6简体中文绿色版

    4. **VBA(Visual Basic for Applications)**:VB6与VBA紧密关联,VBA是嵌入在各种微软应用(如Excel、Word)中的编程语言,用户可以通过VBA进行宏录制和自定义功能开发。 5. **标准控件和API调用**:VB6自带丰富...

    VB6 SP6简体中文迷你版

    3. **强大的VBA支持**:Visual Basic for Applications(VBA)是VB6内置的脚本语言,可用于编写自动化任务和宏,尤其在Microsoft Office套件中应用广泛。 4. **丰富的类库和控件**:VB6提供了大量的内置控件和组件...

    sirk vb6 mini

    在VB6中,typelib允许不同组件之间进行互操作,确保数据的一致性和正确性。内置的typelib支持意味着开发者可以方便地利用和创建COM组件,增强应用程序的功能和可扩展性。 【标签】"vb6 迷你版 开发" 提供了关于软件...

    VB6调用百度地图小程序-源代码

    在VB6(Visual Basic 6)中调用百度地图小程序是一项技术性的工作,涉及到API接口的使用、网络请求以及数据解析等多个方面的知识。这个源代码应该是实现了一个接口,允许VB6程序与百度地图服务进行交互,例如获取...

    VB6 处理Json数据源码

    在VB6中处理JSON数据,通常需要第三方库或自定义代码,因为VB6本身并不内置对JSON的支持。 在这个压缩包中,包含了一些关键文件: 1. **JSON.bas**:这是一个标准的VB6模块,其中包含了处理JSON数据的函数和过程。...

    VB6绿色软件打包工具

    VB6广泛应用于桌面应用开发,但由于其不支持.NET框架,微软在2008年后停止了对VB6的更新,转向了Visual Studio中的VB.NET。 2. **打包工具的重要性**: 在VB6环境中,如果不使用打包工具,通常需要在目标机器上...

    VB6 DataGrid中的数据导出到Excel

    VB6 DataGrid中的数据导出到Excel 本篇文章将详细介绍如何使用VB6将DataGridView中的数据导出到Excel文件中。下面将对标题、描述、标签和部分内容进行解释,并生成相关的知识点。 标题:VB6 DataGrid中的数据导出...

    vb6-mini安装包

    在VB6中,开发者可以利用拖放式的界面构建器、事件驱动编程模型以及简单的语法来快速开发Windows应用程序。 VB6的核心特性包括: 1. **图形用户界面(GUI)设计**:通过Visual Designer,开发者可以直观地设计用户...

    VB6解析json类库

    标题中的“VB6解析json类库”指的是一个用于Visual Basic 6(VB6)环境的JSON解析工具。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输。这个类库...

    VB6图片压缩处理源码

    在VB6(Visual Basic 6)环境中,图片的压缩处理主要涉及到图像的编码、解码以及大小调整等技术。VB6虽然相对较为古老,但它依然提供了处理这些任务的方法和控件,例如通过GDI+(Graphics Device Interface)或...

    vb6直接读取bmp图片显示的源码 vb6分析bmp图片 vb6处理bmp图片

    在VB6(Visual Basic 6)中,读取并显示BMP(Bitmap)图片涉及到图形图像处理的基础知识,包括理解BMP文件格式、内存管理以及控件的使用。以下将详细讲解这些知识点。 首先,BMP是一种无损的位图格式,它存储了图像...

    VB6_Json解析代码

    在IT行业中,VB6(Visual Basic 6)是一款经典的编程环境,主要用于开发Windows桌面应用程序。随着互联网技术的发展,数据交换格式JSON(JavaScript Object Notation)的重要性日益凸显,它以其轻量级、易读写和平台...

    VB6控制摄像头源码

    在VB6中,这通常通过API调用来完成,因为VB6自身并不内置对摄像头硬件的直接支持。 标签“VB”、“摄像头”、“VB6”和“源码”进一步细化了这个项目的组成部分。VB6是编程工具,而“摄像头”是指控件的目标,即...

    QRCodeLib_vb6 VB二维码识别和生成 #资源达人分享计划#

    【标题】"QRCodeLib_vb6 VB二维码识别和生成 #资源达人分享计划#" 涉及的是在VB6(Visual Basic 6)环境中利用QRCodeLib_vb6库进行二维码的读取与生成的技术。这是一套专门针对VB6开发的二维码处理工具,能够帮助...

    VB鼠标滚轮事件_vb6_鼠标滚轮事件_

    在VB6(Visual Basic 6)编程环境中,鼠标滚轮事件是用户与应用程序交互的重要方式之一,它使得用户可以通过滚轮上下滚动来查看控件或窗口中的内容。本篇文章将详细探讨VB6中的鼠标滚轮事件,以及如何在你的应用程序...

Global site tag (gtag.js) - Google Analytics