raw_loop: more graceful crash recovery;
authorwenzelm
Tue, 11 Mar 2008 23:09:30 +0100
changeset 26257 707969e76f5c
parent 26256 3e7939e978c6
child 26258 20dfaa28e5e5
raw_loop: more graceful crash recovery;
src/Pure/Isar/toplevel.ML
--- a/src/Pure/Isar/toplevel.ML	Tue Mar 11 22:31:09 2008 +0100
+++ b/src/Pure/Isar/toplevel.ML	Tue Mar 11 23:09:30 2008 +0100
@@ -772,8 +772,9 @@
       NONE => (writeln "\nInterrupt."; raw_loop secure src)
     | SOME NONE => if secure then quit () else ()
     | SOME (SOME (tr, src')) => if >> tr orelse check_secure () then raw_loop secure src' else ())
-    handle exn => (CRITICAL (fn () => change crashes (cons exn));
-      warning "Recovering after Isar toplevel crash -- see also Toplevel.crashes";
+    handle exn => (Output.error_msg (exn_message exn) handle crash =>
+      (CRITICAL (fn () => change crashes (cons crash));
+        warning "Recovering after Isar toplevel crash -- see also Toplevel.crashes");
       raw_loop secure src)
   end;