Ich frage mich, ob jemand einen guten Weg kannte, um R oder ESS dazu zu bringen, den Rest des Codes über den Punkt hinaus auszuführen, an dem ein Fehler auftritt, wenn ich eine Region oder einen Puffer auswerte habe nur die gegenteilige Anfrage in den Hilfearchiven gefunden. Ich habe in den R Hilfedateien gesucht, aber option(error=stop)
stoppt nur die Ausführung der fehlerhaften Funktion oder Anweisung, aber nicht die folgenden. Vielen Dank!Stop oder Halt bei Fehler erzwingen
Antwort
? Break
Nur bekommen Sie aus der Schleife.
? Versuchen
Hier können Sie Code einrichten, und anmutig erholen scheitern könnte.
According to the ESS manual, sollte diese Arbeit: C-c C-c
(comint-Interrupt-Subjob) Sendet ein Control-C
Signal an den Prozess ESS. Dies hat den Effekt, dass der aktuelle Befehl abgebrochen wird.
John Fox hat eine Website, auf der er eine Konfiguration für ESS anbietet. Darin hat er diese Funktion:
(defun stop-R()
"Interrupt R process in lower window."
(interactive)
(select-window win2)
(comint-interrupt-subjob)
(select-window win1))
sollten Sie in der Lage sein, diese Funktion in das Menü in XEmacs hinzufügen mit:
(defun R-menu()
"Hook to install R menu and sub-menus"
(add-menu-item '("ESS" "R") "Interrupt computation" 'stop-R
)
)
(add-hook 'ess-mode-hook 'R-menu)
Sie könnten den Rest seiner Konfigurationsdatei überprüfen und Dokumentation sehen Sie, ob es Sie interessiert. Ich habe das noch nicht ausprobiert, aber ich hoffe, dass es für dich funktioniert!
Charlie
Danke Charlie - ich kenne Cc Cc aber das ist für manuell stoppe einen laufenden Prozess, unabhängig von Fehlern (wie ich es verstehe). Ich kann überprüfen, eval-Region oder eval-Puffer zu ändern, um diese Funktion aufzurufen, wenn ein Fehler auftritt ... – hatmatrix
Wenn R/ESS wird so viel Rechenzeit hogging, die Ihre Emacs/ESS C-c C-c nicht reagiert, können Sie es auch speichern ein Interrupt-Signal von dem Endgerät zu senden.
Zuerst: herauszufinden, R's ProzessID mit top
oder ps
. (Ich war 98.490 Dann: kill -2 98490
das ein Interrupt-Signal sendet und Sie erhalten Ihre ESS/Emacs und R-Sitzung zurück
- 1. Bash: Stop bei Fehler in Quellskript
- 2. Yii2 erzwingen 404 oder 500 Fehler
- 3. Stop oder Verbergen Autocomplete Text bei der Registrierung Login
- 4. Vagrant halt nicht funktioniert
- 5. Einstellung, damit SBT bei einem Fehler schnell stürzt (stop)
- 6. Scala: Compile-Fehler bei Typ-Alias-Mismatch erzwingen
- 7. Hilfe mit preg_replace, halt bei non alpa_numeric Zeichen
- 8. Halt bei der Präsentation von ViewController mit SKScene
- 9. Erzwingen Aktualisierung bei Ajax Anfrage?
- 10. halt und poweroff
- 11. Stop/Löschen Local Dienst bei der Deinstallation über Wix/MSI
- 12. Floß - behandelt es nur Fail-Stop-Fehler?
- 13. Verzögerung() oder Timeout mit Stop()?
- 14. MATLAB Einstellungen - Stop wenn Fehler
- 15. jQuery-Fade-Stop-Fehler: jQuery (".box"). Stop(). FadeIn();
- 16. Javafx Break oder Stop Button Ereignishandler
- 17. Erzwingen von SSL bei Amazon S3
- 18. Stop Fluent Validation beim ersten Fehler
- 19. Nodejs http Wiederholung bei Timeout oder Fehler
- 20. Fehler bei ungültigem oder abgelaufenem Token zurückgegeben
- 21. Ember-Fehler bei Aktualisierung oder direkter URL
- 22. lang andauernd py.test stop beim ersten Fehler
- 23. Proper Stop Stop IntentService
- 24. Wie erzwingen Google Chrome, um Backtrace bei Ausnahme anzuzeigen?
- 25. So erzwingen Sie die Seitenüberprüfung bei Page_load
- 26. Android Studio Halt Fehlgeschlagen Spruch Gradle Ausführung
- 27. Stop-Ant-Skript ohne Build-Fehler
- 28. Mediaplayer Fehler (-38,0), Stop aufgerufen Zustand 4
- 29. SeekBar Group - halt drag vor maxValue
- 30. Halt Kontrollkästchen in HTML-Tabelle algined
Danke, aber bei der Arbeit interaktiv will ich nicht, die Linie oder Region in Versuch wickeln() oder tryCatch() jedes Mal, aber ich nehme an, das würde es technisch tun ... – hatmatrix
Hallo crippledlambda Hast du in der Zwischenzeit eine Lösung für dein Problem gefunden? – giordano