(* log *)
MatitaLog.set_log_callback self#console#log_callback;
GtkSignal.user_handler :=
- (fun exn -> MatitaLog.error (MatitaExcPp.to_string exn));
+ (fun exn ->
+ if Helm_registry.get_bool "matita.catch_top_level_exn" then
+ MatitaLog.error (MatitaExcPp.to_string exn)
+ else raise exn);
(* script *)
let _ =
match GSourceView.source_language_from_file BuildTimeConf.lang_file with
let selection = dialog#interpChoiceTreeView#selection in
ignore (selection#connect#changed (fun _ ->
match selection#get_selected_rows with
- | [path] ->
- MatitaLog.debug (sprintf "selection: %d" (model#get_interp_no path));
- interp_no := Some (model#get_interp_no path)
+ | [path] -> interp_no := Some (model#get_interp_no path)
| _ -> assert false));
dialog#interpChoiceDialog#show ();
GtkThread.main ();
let handle_error f =
try
f ()
- with exn -> fail (MatitaExcPp.to_string exn)
+ with exn ->
+ if Helm_registry.get_bool "matita.catch_top_level_exn" then
+ fail (MatitaExcPp.to_string exn)
+ else raise exn
in
let handle_error' f = (fun () -> handle_error (fun () -> f ())) in
let load_easter_egg = lazy (
(* loads a uri which can be a cic uri or an about:* uri
* @param uri string *)
method private _load ?(force=false) entry =
- try
+ handle_error (fun () ->
if entry <> current_entry || entry = `About `Current_proof || force then
begin
(match entry with
self#_loadList (List.map (fun r -> "obj",
UriManager.string_of_uri r) results));
self#setEntry entry
- end
- with exn -> fail (MatitaExcPp.to_string exn)
+ end)
method private blank () =
self#_showMath;