![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
|
Hallo Roland.
Wenn ich in ein Programm folgende Zeilen einfüge: Code:
errorproc
messagebox("Fehler","",0)
endproc
Set("Errorlevel",-1)
Set("OnError",1)
...Code
Messagebox(0)'Fehlerhafte Syntax
Ähnlich kommts bei Errorlevel=2. Ich weiß jetzt nicht ob ich zum Abfangen aller Fehler 2 oder -1 nehmen muss. Jedenfalls kommt bei Windows 7 die "Original"-Fehlermeldung trotzdem noch. Jac
__________________
XProfan-Profi (XProfan X2+XPIA) http://jacdelad.bplaced.net http://jacdelad.square7.ch |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Hallo,
ich habe gerade noch mal das Beispiel aus der Hilfe genommen und OnError funktioniert bei mir unter Windows 7 exakt so wie auch unter XP. Gruß Roland BTW: OnError fängt natürlich nur XProfan-Fehlermeldungen ab, keine Windows-Meldungen. Wenn Du also einen Fehler produzierst, der XProfan zum Absturz bringt (das geht leider tatsächlich), dann hilft auch OnError nicht.
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de Geändert von RGH (10.10.2009 um 00:43 Uhr) |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
|
Hier mal eine Zeile abgeändert. Ich habs mal auf dem Netbook probiert, das klappt bei beiden Windows-Versionen nicht. Aber wie kann ich nun einen solchen Fehler abfangen?
Code:
ErrorProc
Set("ErrorLevel", 1)
Print "<----ErrorProc---->"
Print %Error, %ErrNumber, %ErrLine, $ErrStr, $ErrFile
Print "<----------------->"
Set("ErrorLevel", -1)
EndProc
CLS
Set("ErrorLevel", -1)
Set("OnError", 1)
Print Match$("^H[aA]us$","HAus")
messagebox(0)
'Print %MatchPos, %MatschLen ' <-- hier ist ein Fehler: Unbekannte Systemvariable (Fehlernr 100)
WaitInput
End
__________________
XProfan-Profi (XProfan X2+XPIA) http://jacdelad.bplaced.net http://jacdelad.square7.ch |
|
|
|
|
|
#4 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Hintergrund (Delphi-Beispiel): Code:
If Zeile[1] > '0' Then Begin ... Bei langen Strings führt der Zugriff auf das erste Zeichen zum Systemfehler, wenn Zeile ein Leerstring ist, deshalb muss zuvor abgefragt werden,ob die Länge des Strings Zeile >= 1 ist: Code:
If Length(Zeile) >= 1 Then If Zeile[1] > '0' Then Begin ... Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#5 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
|
Hm, aha, ok. Ich war mir ziemlich sicher, dass ich vorher alle Fehler abfangen konnte, aber dann liegts wahrscheinlich daran, dass es andere Fehler waren, die eben abbrechbar sind.
Noch eine Frage: Muss ich nun ErrorLevel -1 oder 2 nehmen? So wie ich das verstehe unterdrückt -1 die Fehler und gibt sie auch nicht an Errorproc weiter. 2 hingegen registriert alles als Fehler und gibt es an Errorproc weiter (ohne aber eine Meldung auszugeben, weil Errorproc das ja bearbeitet). Jac
__________________
XProfan-Profi (XProfan X2+XPIA) http://jacdelad.bplaced.net http://jacdelad.square7.ch |
|
|
|
|
|
|
#6 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Du musst -1 nehmen. ErrorProc wird für die Fehler angesprungen, die nicht per Messagebox gemeldet werden. Bei 2 würden selbst Warnungen als Fehler gemeldet! Also: Wenn die ErrorProc angesprungen werden soll, den ErrorLevel immer auf -1 setzen. In der ErrorProc selbst dann sofort auf 0 bis 2, damit nicht ein Fehler in der ErrorProc zu einer Endlosschleife führt. (Also beim Setzen des ErrorLevels 0, 1 oder 2 ganz besonders auf die korrekte Syntax achten! Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
ich denke mal, dass es so richtig ist.
Set("ErrorLevel", -1) Set("OnError", 1)
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#8 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#9 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
|
Ah alles klar. Vielleicht kann man das ja noch in der Hilfe unterbringen. Wenn es dir noch in XProfan 12 gelänge ALLE Probleme umzuleiten, das wär geil.
__________________
XProfan-Profi (XProfan X2+XPIA) http://jacdelad.bplaced.net http://jacdelad.square7.ch |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Windows startet nicht : Datei Windows/System32/Config/System fehlt o. ist beschädigt | Unregistriert | Windows XP | 10 | 22.09.2011 21:55 |
| Windows Media Maker - Vista Version unter Windows XP verwenden ? | Unregistriert | Software - Allgemein | 4 | 18.09.2009 20:12 |
| Service Pack 2 für Windows Vista und Windows Server 2008 nähert sich der Fertigstellu | Info | Sicherheitsmeldungen von heise.de | 0 | 26.02.2009 22:40 |
| Windows 2000 Server über Windows 2003 installieren. | sve07bl | Windows 95/98/ME/2000/NT | 1 | 21.04.2005 20:36 |
| Wechsel von Windows ME auf Windows 2000 oder Windows 98 | ThomasP | Windows 95/98/ME/2000/NT | 2 | 13.04.2004 22:35 |