]> matita.cs.unibo.it Git - helm.git/commitdiff
Avoid killing the main gui thread.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 3 Jun 2011 08:32:32 +0000 (08:32 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 3 Jun 2011 08:32:32 +0000 (08:32 +0000)
matita/matita/matitaExcPp.ml

index 5b9cb434740e3cc194150c7717c0dc00d770ad98..da46ed88c5029d7a3dd43ea3bbdf446accfb1f26 100644 (file)
@@ -112,8 +112,9 @@ let compact_disambiguation_errors all_passes errorll =
    choices
 ;;
 
-let rec to_string = 
-  function
+let rec to_string exn =
+ try
+  (match exn with
     HExtlib.Localized (floc,exn) ->
       let _,msg = to_string exn in
       let (x, y) = HExtlib.loc_of_floc floc in
@@ -139,6 +140,8 @@ let rec to_string =
      None, "NRefiner uncertain: " ^ snd (Lazy.force msg)
   | NCicMetaSubst.Uncertain msg ->
      None, "NCicMetaSubst uncertain: " ^ Lazy.force msg
+  | NCicMetaSubst.MetaSubstFailure msg ->
+     None, "NCicMetaSubst failure: " ^ Lazy.force msg
   | NCicTypeChecker.TypeCheckerFailure msg ->
      None, "NTypeChecker failure: " ^ Lazy.force msg
   | NCicTypeChecker.AssertFailure msg ->
@@ -236,5 +239,6 @@ let rec to_string =
       loc,
        "********** DISAMBIGUATION ERRORS: **********\n" ^
         explain (aux errorll)
-  | exn -> None, ("Uncaught exception: " ^ Printexc.to_string exn ^ Printexc.get_backtrace ())
-
+  | exn -> None, ("Uncaught exception: " ^ Printexc.to_string exn ^ Printexc.get_backtrace ()))
+ with exn ->
+  None, ("Exception raised during pretty-printing of an exception: " ^ Printexc.to_string exn ^ Printexc.get_backtrace ())