| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | Besichtigung der MAIT.Cloud in Frankfurt | 19.11.2025, eine Veranstaltung am 19.11.2025
|
Autor
|
Thema: Fehlerbehandlung (875 mal gelesen)
|
Ex-Mitglied
|
erstellt am: 29. Okt. 2001 09:02 <-- editieren / zitieren -->
Fehlerbehandlung in ME10 Hallo Leute, kann mir einer mal erklären, wie man Fehler in einem Me10- Makro abfängt? Was macht TRAP_ERROR und was ON_ERROR ? Wann steht was in ERROR_STR und wie fragt man das ab ? Wenn das Programm D:\ComClient1.exe nicht existiert, möchte ich das Me10-Makro mit Fehlermeldung beenden. Es kommt eine Fehlermeldung ... Die Datei D:\ComClient1.exe konnte nicht gefunden werden ... die man dann wegklicken kann. Danach würde ich gerne das Programm beenden. Folgendes hat nicht funktioniert: TRAP_ERROR RUN "Start D:\ComClient1.exe ME10" IF ERROR_STR > "" DISPLAY_NO_WAIT '*** ComClient not startet ***' END_IF dies auch nicht: ON_ERROR 'exit' DEFINE exit {************************************************************} DISPLAY_NO_WAIT '*** ComClient not startet ***' END_DEFINE Kann mir jemand helfen ? Vielen Dank Doris
|
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 29. Okt. 2001 15:02 <-- editieren / zitieren --> Unities abgeben:         
Alles was in RUN abläuft, kriegt ME10 gar nicht mit und wartet nur auf die Beendigung des externen Programms. Wenn da gar nix passiert, ist ihm das auch egal. Die Fehlerbehandlung mit TRAP_ERROR etc. funktioniert nur innerhalb der eigentlichen ME10-Makros. Um festzustellen, ob es eine Datei gibt, läßt sich aber die folgende Routine verwenden: OPEN_INFILE 9 'D:\ComClient1.exe' READ_FILE 9 Error CLOSE_FILE 9 IF (Error='END-OF-FILE') DISPLAY_NO_WAIT '*** ComClient not startet ***' ELSE RUN "Start D:\ComClient1.exe ME10" END_IF Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 29. Okt. 2001 16:22 <-- editieren / zitieren -->
Aahhh, sieht genau danach auch, was ich brauche ... werde es morgen mal testen. Ich dachte, OPEN_INFILE ist nur für ASCII - wieder was gelernt. Das Problem, das ich dann weiter habe, ist das nicht einer zweimal den ComClient startet, aber das kann man wohl nicht in Me10 abfangen ?!?! |
Dittrich Mitglied SysAdmin
 
 Beiträge: 388 Registriert: 06.06.2000 Wenn es nicht geht, probier was anderes, vielleicht geht es dann auch nicht.
|
erstellt am: 29. Okt. 2001 16:53 <-- editieren / zitieren --> Unities abgeben:         
Entweder du fängst das in deinem Client-Programm ab, oder fragst die Prozessliste in UNIX ab, ob so ein Prozess vorhanden ist. Was aber nicht hilft, wenn er sich aufgehangen hat. Dann schon lieber erneut starten und einen laufenden Prozess killen. Dürfte aber auch schwieriger werden, da nur der User Prozesse beenden kann, der sie auch gestartet hat. Bau doch den Clientstart in den Aufstart von Me10 ein, sodas es garkeine Startmöglichkeit für den User gibt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
  
 Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 29. Okt. 2001 21:45 <-- editieren / zitieren --> Unities abgeben:         
2 Macros die unter UX, wie unter NT das Problem beheben sollten. DEFINE COM_GESTARTET 0 END_DEFINE DEFINE COM_START ON_ERROR "DISPLAY 'Datei nicht vorhanden' CANCEL" OPEN_INFILE 9 'D:\ComClient1.exe' CLOSE_FILE 9 ON_ERROR '' IF (COM_GESTARTET = 1) DISPLAY "*** ComClient laeuft bereits ****) ELSE LET COM_GESTARTET (1) RUN "Start D:\ComClient1.exe ME10" END_IF END_DEFINE Meinen Schrott von gestern musste ich nochmals überarbeiten. Die Variable "ERROR" darf man nich verwenden. Auch das Öffnen von Dateien unter NT hat ein anderes Fehlerverhalten. Aber jetzt habe ich die Sache getestet, das war ich Euch schuldig nach meinem Schrott von gestern. erneut ME10-Makrogrüsse aus dem Schwarzwald [Diese Nachricht wurde von baumgartner am 30. Oktober 2001 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 30. Okt. 2001 07:39 <-- editieren / zitieren -->
Hallo Andreas Baumgartner, vielen Dank vom Bodensee in den Schwarzwald, werde es gleich testen. Gruß Doris
|
GerdBellin Mitglied
 Beiträge: 2 Registriert: 15.02.2002
|
erstellt am: 15. Feb. 2002 17:45 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute. Bei der ganzen Fehlerbehandlung fehlt eine Aspekt: Der ERROR_STR kann erst nach einem CHECK_ERROR ausgewertet werden. ERROR_STR enthält dann die Fehlermeldung die in der Eingabezeile erscheinen würde, lässt sich also auch auswerten. TRAP_ERROR wird auch erst durch CHECK_ERROR beendet, das heisst, ohne CHECK_ERROR wird kein Fehler mehr angezeigt. Beispiel:
TRAP_ERROR ..... IF (CHECK_ERROR) DISPLAY (ERROR_STR) END_IF Ob das bei wirklich allen Fehlermeldungen klappt kann ich nicht sagen
Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |