This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  MathLink und externe Programm-Kommunikation /

Manipulieren von Ausdrücken in externen ProgrammenAusführen von Mathematica aus einem externen Programm heraus

2.12.13 Fortgeschrittenes Thema: Fehler- und Interrupt-Behandlung

Wenn Sie Daten via MathLink holen und ablegen, können verschiedene Arten von Fehlern auftreten. Wann immer ein Fehler auftritt, wechselt MathLink in einen vollständig inaktiven Status, und alle MathLink-Funktionen, die Sie aufrufen, geben sofort den Wert 0 zurück.

Behandlung von Fehlern in MathLink-Programmen

Wenn Sie komplizierte Operationen durchführen, ist es oft günstiger, nur am Ende auf Fehler zu prüfen. Wenn man festgestellt hat, daß ein Fehler aufgetreten ist, muß anschließend MLClearError() aufgerufen werden, um MathLink erneut zu aktivieren.

Löschen der Überreste eines Paketes

Nach einem Fehler ist es üblich, die Reste der Pakete oder Ausdrücke zu entfernen, die gegenwärtig verarbeitet werden. Dies wird mit MLNewPacket() erreicht.

In einigen Fällen möchte man vielleicht nach Auftreten eines Fehlers während der Verarbeitung bestimmter Daten zurückgehen und die Daten auf eine andere Weise neu verarbeiten können. Dies läßt sich erreichen, indem man MLCreateMark() aufruft, um eine Marke zu erzeugen, bevor die Daten verarbeitet werden, und indem man anschließend MLSeekMark() aufruft, um bis zur Marke zurück zu suchen, falls man die Daten erneut verarbeiten muß. Es sollte jedoch nicht vergessen werden, MLDestroyMark() aufzurufen, wenn man schließlich mit den Daten fertig ist. Anderenfalls wird MathLink die Daten weiterhin speichern.

Abbrechen eines externen Programms

Wenn man Mathematica während der Ausführung einer externen Funktion unterbricht, wird es in der Regel zu erlauben versuchen, die externe Funktion abzubrechen. Hat man sich dafür entschieden, so wird die globale Variable MLAbort im externen Programm auf den Wert 1 gesetzt.

MathLink kann aus einem zuvor gemachten externen Funktionsaufruf nicht automatisch aussteigen. Wenn man also eine Funktion mit einer möglicherweise sehr langen Ausführungszeit hat, sollte man explizit hin und wieder MLAbort überprüfen und die Funktion beenden, wenn man bemerkt, daß die Variable gesetzt wurde.

Manipulieren von Ausdrücken in externen ProgrammenAusführen von Mathematica aus einem externen Programm heraus