Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Are there any error(s) which cannot be handled?
Message
From
05/05/1998 02:08:12
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Troubleshooting
Title:
Are there any error(s) which cannot be handled?
Miscellaneous
Thread ID:
00096940
Message ID:
00096940
Views:
62
Although I have writen some Error Control, I still have the following
error and quit the system at once.

Is the RunTime Library Stable?? I mean the VFP500.DLL!!
How can I prevent the error happened by VFP500.DLL?

Currently, my defined message prompt ww.prg is:
LPARAMETERS MSG1, MSG2, MSG3, MSG4, MSG5, MSG6, MSG7, MSG8, MSG9, MSG10
LOCAL OUTPUT, SEMIMSG, WAITSTATE

IF PCOUNT() = 0
	OUTPUT = [.Nothing.]
	WAIT OUTPUT WINDOW NOWAIT TIMEOUT 2
ELSE

OUTPUT = ""
FOR X = 1 TO PCOUNT()
	SEMIMSG = EVAL('MSG'+ALLTRIM(STR(X)))
	IF X > 1	&& ADD RETURN
		OUTPUT = OUTPUT + CHR(13)
	ENDIF
	DO CASE
		CASE TYPE("SEMIMSG") $ "C"	&& Character Set
			SEMIMSG = SEMIMSG+CHR(9)+"[Character:" +CHR(9) +ALLTRIM(STR(LEN(SEMIMSG)))+"]"
		CASE TYPE("SEMIMSG") $ "NY" && CHANGE NUMBER TO STRING
			IF EMPTY(SEMIMSG - INT(SEMIMSG))	&& INTEGER
				SEMIMSG = ALLTRIM(STR(SEMIMSG))+CHR(9)+"[Number]"
			ELSE
				SEMIMSG = ALLTRIM(STR(SEMIMSG, 10, 4))+CHR(9)+"[Decimal Number]"
			ENDIF
		CASE TYPE("SEMIMSG") $ "D" && CHANGE DATE TO STRING
			SEMIMSG = ALLTRIM(DTOC(SEMIMSG))+CHR(9)+"[Date]"
		CASE TYPE("SEMIMSG") $ "T"	&& CHANGE TIME TO STRING
			SEMIMSG = ALLTRIM(TTOC(SEMIMSG))+CHR(9)+"[Time]"
		CASE TYPE("SEMIMSG") $ "L"	&& LOGIC
			SEMIMSG = IIF(SEMIMSG, ".True.", ".False.")+CHR(9)+"[Logic]"
		CASE TYPE("SEMIMSG") $ "O"	&& CHANGE OBJECT TO STRING
			SEMIMSG = "Name: " +ALLTRIM(SEMIMSG.NAME) + CHR(9) + "Class: " + ALLTRIM(SEMIMSG.CLASS)+CHR(9)+"[Object]"
		CASE TYPE("SEMIMSG") $ "G"	&& GENERAL
			SEMIMSG = ".General."+CHR(9)+"[General]"
		CASE TYPE("SEMIMSG") $ "M"	&& MEMO
			SEMIMSG = ".Memo."+CHR(9)+"[Memo]"
		CASE TYPE("SEMIMSG") $ "U"	&& UNDEFINE
			SEMIMSG = ".Undefine."+CHR(9)+"[Undefine]"
	ENDCASE
	
	IF !EMPTY(SEMIMSG)
		OUTPUT = OUTPUT + SEMIMSG
	ELSE
		OUTPUT = OUTPUT + ".NULL."
	ENDIF
ENDFOR

IF PCOUNT() > 1 AND TYPE('MSG1') $ 'NY' 
	DO CASE
	CASE MSG1 == 7
		WAITSTATE = 'NOCLEAR NOWAIT'	
		WAIT OUTPUT WINDOW NOCLEAR NOWAIT
	CASE MSG1 == 8
		WAITSTATE = ''
		WAIT OUTPUT WINDOW
	CASE MSG1 == 9
		WAITSTATE = 'NOWAIT'
		WAIT OUTPUT WINDOW NOWAIT
	OTHERWISE
		WAITSTATE = 'TIMEOUT 2'
		WAIT OUTPUT WINDOW TIMEOUT 2
	ENDCASE
ELSE
	WAIT OUTPUT WINDOW TIMEOUT 2
ENDIF

ENDIF	&& END PCOUNT()=0
RETURN OUTPUT
So Far, there is no problem on display Message. BUT I find that:

ww(_screen) && no error
ww(Nvl(_screen, .NULL.)) && no error

ww(Nvl(.Null., _screen)) cause following error!!!
This error even occur in command window or FOXCMD.exe!!

FOXCMD caused an invalid page fault in
module VFP500.DLL at 014f:1001e974.
Registers:
EAX=00000000 CS=014f EIP=1001e974 EFLGS=00010216
EBX=00abdcaf SS=0157 ESP=0063f410 EBP=182b089c
ECX=a0000159 DS=0157 ESI=00abac8c FS=1aef
EDX=00ac3724 ES=0157 EDI=00abe83c GS=0000
Bytes at CS:EIP:
66 83 7c 29 10 20 75 e4 53 8b ce e8 51 2e 02 00 
Stack dump:
00000001 00000001 0063f5f8 00abe83c 1001e8a7 00000001 0063f5f8 00000000 00000000 00000000 1001e7b3 00000001 0063f694 00b8f24c 0063f758 00abadc4


This make me amazing!! the passing on parameter got error?!
but no problem with similar action?! ?_____?'

Is NVL() got problem ?!



In worst case, there are really hide error on VFP500.DLL,
I mean if the worst case!
What suggestion(s) or method(s) to prevent or avoid these error occur?

2nd, how to handle error which the system DO NOT calling my
ON ERROR statement nor Object.Error procedure??


I nearly got crazy now. Impossible but occurs... +_+'
The weak wait for chance, The strong bid for chance,
The clever notch up chance, but The merciful give you chance.
Next
Reply
Map
View

Click here to load this message in the networking platform