- 浏览: 257275 次
文章分类
- 全部博客 (395)
- Tech (0)
- [随笔分类]心情 (95)
- [随笔分类]技术 (112)
- [随笔分类]管理心得 (13)
- [随笔分类]Code SOP (5)
- [随笔分类]望图知意 (11)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (8)
- [随笔分类]重构代码 (1)
- [随笔分类]童童 (2)
- Program (1)
- [随笔分类]看你知道不知道 (1)
- [网站分类]4.其他技术区 (31)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (21)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [随笔分类]昨日关注 (15)
- [网站分类]6.读书区(技术书籍阅读心得、书籍推荐) (3)
- [随笔分类]一步一个脚印 (2)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (3)
最新评论
今天还是修改原先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 String, Optional 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 String) As 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
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 String, Optional 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 String) As 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
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
通过这些代码可以节约一些重复代码的数量,作为一个小的底层错误处理机制应该还可以.
发表评论
-
启动NDuiker项目
2005-01-20 17:05 461今天是进驻博客园的第一天,在这里安家真的很不错,十分感谢DuD ... -
NDuiker项目第2天总结
2005-01-21 08:53 657昨天晚上基本上实现了 ... -
NDuiker项目第3天
2005-01-22 22:50 587今天是周六了,原本以为是很轻松的一天,结果只有到了这个时 ... -
NDuiker项目第6天
2005-01-25 16:50 593这几天好忙,也好累呀,这几天是公司项目收尾的阶段,忙的都透不过 ... -
对.Net 类库的一点思索
2005-02-02 09:29 614这些天主要在测试GDI+的 ... -
测试一个网站的想法
2005-02-05 17:07 547由于项目的需要,测试了一下“上海研发公共服务平台” 登录:ht ... -
项目建议书编写总结
2005-02-25 15:46 777昨天完成了项目建议书的编写工作,整个春节期间的工作到今天全部完 ... -
MyIE 增加了RSS功能
2005-02-28 09:54 575今天更新了MyIE,发现MyIE增加了RSS功能,试用了一下, ... -
www.beihua.edu.cn计划摘录
2005-02-28 14:11 785www.beihua.edu.cn工作计划 1:网站后期制作计 ... -
网站调研资料记录
2005-03-01 15:56 633资料整理备忘 1:内外网IP确认 ... -
静静的看书
2005-03-08 17:18 585这几天还是很忙,但是似乎好了很多,因为目前主要是写一个基于Sm ... -
我的Smart Client 的学习笔记
2005-03-09 15:35 1701User Interface Process (UIP) Ap ... -
研发、开发、运营
2005-03-25 12:15 637这些天很忙,网络也不争气,才刚刚好一点。 ... -
当需求变更来临
2005-04-30 14:26 545昨晚已经和老婆安排好5 ... -
重新登录Window2003的域
2005-05-12 09:58 688今天公司要求重新登录Windows2003的域,记录一下,以后 ... -
当不愿意写字得时候
2005-05-16 15:36 716做项目得前期分析得时候,我还是比较喜欢在本子上写写、画画得,通 ... -
远离技术的时候
2005-06-20 11:05 436这一个月一直在忙一个项目,现在项目的可研报告也 ... -
Asp.Net 中使用客户端Activex控件需要注意的事情
2005-08-13 12:57 958案例:Asp.Net +VB制作的Activex控件 操作系统 ... -
Office开发中的测试的与众不同之处
2005-08-22 14:29 734今天修改了一下自己以 ... -
大家确实都很忙
2005-08-27 08:20 738先谈几个技术问题: 1 ...
相关推荐
总的来说,"VB6-FormatCode"插件是VB6开发者不可或缺的辅助工具,它的出现解决了VB6环境中代码格式化的问题,提升了开发体验,也保证了代码的整洁和一致性。无论是个人开发还是团队协作,它都能够发挥重要作用,帮助...
安装与使用AutoCode for VB6.0时,用户需要将压缩包中的"AutoCode for VB6.0"文件解压,并按照提供的说明将组件整合到VB6的IDE中,通常这涉及导入自定义组件或者注册相关DLL文件。一旦设置完毕,用户就可以在VB6的...
WebBrowser控件是VB6中的一个强大组件,它允许开发者在应用程序中嵌入一个Internet Explorer实例,从而实现浏览网页的功能。这个"VB6 Webbrowser加载Word"的主题涉及到如何利用WebBrowser控件来打开和显示Microsoft ...
VB6(Visual Basic 6)是微软公司推出的一款经典的可视化编程环境,主要用于开发Windows桌面应用程序。...尽管VB6已经不再得到微软的官方支持,但在某些领域,尤其是企业内部的遗留系统中,VB6仍然是不可或缺的工具。
标题中的“vb vb6 vb6.0 dde 通信 绝对可用 伪多线程 进程外 源码”指的是一个使用Visual Basic 6 (VB6)编程语言开发的程序,该程序利用动态数据交换(Dynamic Data Exchange, DDE)技术进行进程间的通信,并且实现...
4. **VBA(Visual Basic for Applications)**:VB6与VBA紧密关联,VBA是嵌入在各种微软应用(如Excel、Word)中的编程语言,用户可以通过VBA进行宏录制和自定义功能开发。 5. **标准控件和API调用**:VB6自带丰富...
3. **强大的VBA支持**:Visual Basic for Applications(VBA)是VB6内置的脚本语言,可用于编写自动化任务和宏,尤其在Microsoft Office套件中应用广泛。 4. **丰富的类库和控件**:VB6提供了大量的内置控件和组件...
在VB6中,typelib允许不同组件之间进行互操作,确保数据的一致性和正确性。内置的typelib支持意味着开发者可以方便地利用和创建COM组件,增强应用程序的功能和可扩展性。 【标签】"vb6 迷你版 开发" 提供了关于软件...
在VB6(Visual Basic 6)中调用百度地图小程序是一项技术性的工作,涉及到API接口的使用、网络请求以及数据解析等多个方面的知识。这个源代码应该是实现了一个接口,允许VB6程序与百度地图服务进行交互,例如获取...
在VB6中处理JSON数据,通常需要第三方库或自定义代码,因为VB6本身并不内置对JSON的支持。 在这个压缩包中,包含了一些关键文件: 1. **JSON.bas**:这是一个标准的VB6模块,其中包含了处理JSON数据的函数和过程。...
VB6广泛应用于桌面应用开发,但由于其不支持.NET框架,微软在2008年后停止了对VB6的更新,转向了Visual Studio中的VB.NET。 2. **打包工具的重要性**: 在VB6环境中,如果不使用打包工具,通常需要在目标机器上...
VB6 DataGrid中的数据导出到Excel 本篇文章将详细介绍如何使用VB6将DataGridView中的数据导出到Excel文件中。下面将对标题、描述、标签和部分内容进行解释,并生成相关的知识点。 标题:VB6 DataGrid中的数据导出...
在VB6中,开发者可以利用拖放式的界面构建器、事件驱动编程模型以及简单的语法来快速开发Windows应用程序。 VB6的核心特性包括: 1. **图形用户界面(GUI)设计**:通过Visual Designer,开发者可以直观地设计用户...
标题中的“VB6解析json类库”指的是一个用于Visual Basic 6(VB6)环境的JSON解析工具。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输。这个类库...
在VB6(Visual Basic 6)环境中,图片的压缩处理主要涉及到图像的编码、解码以及大小调整等技术。VB6虽然相对较为古老,但它依然提供了处理这些任务的方法和控件,例如通过GDI+(Graphics Device Interface)或...
在VB6(Visual Basic 6)中,读取并显示BMP(Bitmap)图片涉及到图形图像处理的基础知识,包括理解BMP文件格式、内存管理以及控件的使用。以下将详细讲解这些知识点。 首先,BMP是一种无损的位图格式,它存储了图像...
在IT行业中,VB6(Visual Basic 6)是一款经典的编程环境,主要用于开发Windows桌面应用程序。随着互联网技术的发展,数据交换格式JSON(JavaScript Object Notation)的重要性日益凸显,它以其轻量级、易读写和平台...
在VB6中,这通常通过API调用来完成,因为VB6自身并不内置对摄像头硬件的直接支持。 标签“VB”、“摄像头”、“VB6”和“源码”进一步细化了这个项目的组成部分。VB6是编程工具,而“摄像头”是指控件的目标,即...
【标题】"QRCodeLib_vb6 VB二维码识别和生成 #资源达人分享计划#" 涉及的是在VB6(Visual Basic 6)环境中利用QRCodeLib_vb6库进行二维码的读取与生成的技术。这是一套专门针对VB6开发的二维码处理工具,能够帮助...
在VB6(Visual Basic 6)编程环境中,鼠标滚轮事件是用户与应用程序交互的重要方式之一,它使得用户可以通过滚轮上下滚动来查看控件或窗口中的内容。本篇文章将详细探讨VB6中的鼠标滚轮事件,以及如何在你的应用程序...