Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 128
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 186
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 34, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 69, Antworten: 6
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09.10.2009, 21:43   #1 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Unglücklich OnError und Windows 7

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
kommt bei Windows 7 trotzdem die profaneigene Fehlermeldung, obwohl die eigentlich unterdrückt werden sollte.

Ä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
Jac de Lad ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 10.10.2009, 00:38   #2 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

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)
RGH ist offline   Mit Zitat antworten
Alt 10.10.2009, 09:08   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

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
Jac de Lad ist offline   Mit Zitat antworten
Alt 10.10.2009, 11:31   #4 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von Jac de Lad Beitrag anzeigen
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?
Leider überhaupt nicht. Den sollte ich eigentlich zunächst in XProfan selbst abfangen ... und dann liesse er sich mit OnError abfangen. Es gibt leider seit der Umstellung auf lange Strings noch einige Stellen, wo die Abfrage auf falsche Syntax zu Systemfehlern (meist NullPointerException) führt. Einige habe ich schon ausgemerzt, aber nicht alle.
Hintergrund (Delphi-Beispiel):
Code:
If Zeile[1] > '0' Then Begin ...
Diese Zeile funktionierte mit kurzen Strings auch dann wie erwartet, wenn Zeile ein Leerstring ist: Die Bedingung liefert false.
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 ...
Da leider nicht alle Vorkommen dieser Problematik so einfach zu erkennen sind wie im Beispiel, habe ich offensichtlich noch nicht alle Stellen erwischt. Und hier ist es dann auch möglich, dass Interpreter und Runtime unterschiedlich reagieren, da der Parser logischerweise den Unterschied zwischen beiden ausmacht.

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
RGH ist offline   Mit Zitat antworten
Alt 10.10.2009, 11:39   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Lächeln

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
Jac de Lad ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 10.10.2009, 11:50   #6 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von Jac de Lad Beitrag anzeigen
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).
Hallo,
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! ). Vor Verlassen der ErrorProc diesen wieder auf -1 setzen. Bei ErrorLevel 0 - 2 wird ErrorProc nicht angesprungen.

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
RGH ist offline   Mit Zitat antworten
Alt 10.10.2009, 11:52   #7 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

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
Bangkok ist offline   Mit Zitat antworten
Alt 10.10.2009, 12:23   #8 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von Bangkok Beitrag anzeigen
ich denke mal, dass es so richtig ist.

Set("ErrorLevel", -1)

Set("OnError", 1)
Korrekt!

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
RGH ist offline   Mit Zitat antworten
Alt 10.10.2009, 12:49   #9 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

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
Jac de Lad ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ä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



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:02 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2