You are visitor number since 11 February 2004.
Go to Howard Kaikow's home page
Copyright © 2004 by Howard Kaikow. All rights
reserved.
Date: 27 February 2004
From: Howard Kaikow <kaikow@standards.com>
Subject: Out of stack space (Revision of 24 February 2004 posting)
On 31 January 2004, I posted the topic "Out of stack space: Should I punt?" in the microsoft.public.vb.general.discussion newsgroup.
The code below will demonstrate the error if you comment out the Resume statements.
The Resume statements work around the error.
Option Explicit Private Const strFormTitle As String = "Whatever" Private Const OUT_OF_MEMORY As Long = 7 Private Const OUT_OF_STACK_SPACE As Long = 28 Private Const strOut_Of_Stack_Space As String = "(OUT_OF_STACK_SPACE)" Private Const strOut_Of_Memory As String = "(OUT_OF_MEMORY)" Public Sub Main() Dim strTemp As String Do strTemp = Trim$(InputBox(prompt:="Number of data items?", Title:="Sample size", Default:="")) On Error GoTo EndIt Err.Raise OUT_OF_STACK_SPACE ' Force stack space error MsgBox Now, , "Cannot get here" EndIt: If Err.Number <> 0 Then ProcessError Resume GoBoo End If GoBoo: On Error GoTo EndItAgain ' Not sufficient to clear previous error Err.Raise OUT_OF_STACK_SPACE ' Force stack space error after real stack space error MsgBox Now, , "Nor here" EndItAgain: If Err.Number <> 0 Then ' VB allows us to get here only if Resume was used above ProcessError Resume GoHoo End If GoHoo: MsgBox "VB allows us to get here only if Resume is used", , "Do we get here?" Loop While Len(strTemp) = 0 MsgBox "We iz done!", , "That's all folks!" End Sub Private Sub ProcessError() Dim strMessage As String With Err Select Case .Number Case OUT_OF_STACK_SPACE strMessage = strOut_Of_Stack_Space Case OUT_OF_MEMORY strMessage = strOut_Of_Memory Case Else strMessage = "Error " & .Number & ", " & .Description MsgBox strMessage & vbCrLf & _ "If possible, processing will continue.", vbOKOnly, strFormTitle End Select End With End Sub