_Error( ), API-Bibliotheksroutine
Meldet den durch den Wert in code angegebenen Fehler an die Visual FoxPro-Laufzeit.
void _Error(int code)
int code; /* Internal Visual FoxPro
error number. */
Hinweise
Der Parameter code ist eine interne Visual FoxPro-Fehlernummer und kann als positiver oder negativer Wert übergeben werden. _Error( ) übergibt die Steuerung an die Visual FoxPro-Fehlerbehandlungsroutine. Damit kann der Fehler wie jeder andere Visual FoxPro-Fehler behandelt werden. Die Steuerung des Programmablaufs wird nicht an die Routine zurückgegeben, die _Error( ) aufgerufen hat, auch dann nicht, wenn der Benutzer den Fehler ignoriert. Die Programmausführung wird mit der nächsten Visual FoxPro-Anweisung wieder aufgenommen.
Eine Auflistung der Fehlernummern und ihrer Bedeutung finden Sie in der Hilfe unter Visual FoxPro-Fehlernummern.
Anmerkung Rufen Sie _Error( ) nicht aus einer Ereignisbehandlungsroutine auf.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird _Error( ) aufgerufen, wenn _DBSkip( ) eine Fehlernummer zurückgibt. Der Visual FoxPro-Code zeigt, wie ein Aufrufen von _Error( ) ausgelöst wird.
Visual FoxPro-Code
SET LIBRARY TO ERROR
DO CreateTest
ON ERROR DO expectError
USE
= DBSKIP(1) && _Error() called: no DBF in use
USE test
GO TOP
= DBSKIP(-1)
= DBSKIP(-1) && _Error() called: at top of file
GO BOTT
= DBSKIP(1)
= DBSKIP(1) && _Error() called: at bottom of file
ON ERROR
PROCEDURE expectError
? "ERROR: " + MESSAGE()
RETURN
PROCEDURE CreateTest
CREATE TABLE test (ABC C(20))
APPEND BLANK
REPLACE ABC WITH "This is record 1"
APPEND BLANK
REPLACE ABC WITH "This is record 2"
APPEND BLANK
REPLACE ABC WITH "This is record 3"
APPEND BLANK
REPLACE ABC WITH "This is record 4"
GO TOP
RETURN
C-Code
#include <pro_ext.h>
FAR Example(ParamBlk FAR *pblk)
{
int RetCode;
if ((RetCode = _DBSkip(-1, pblk->p[0].val.ev_long)) < 0) {
_PutStr("\nError encountered in example program.");
_Error(-RetCode); // _DBSkip() returns negative error code
}
_RetInt(RetCode, 10);
}
FoxInfo myFoxInfo[] = {
{"DBSKIP", (FPFI) Example, 1, "I"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_ErrorInfo( ), API-Bibliotheksroutine | _UserError( ), API-Bibliotheksroutine | _DBSkip( ), API-Bibliotheksroutine