with Not_found ->
(* in the final implementation should get it from disk *)
let ouri = NCic2OCic.ouri_of_nuri u in
- let o,_ = CicEnvironment.get_obj CicUniv.oblivion_ugraph ouri in
- let l = OCic2NCic.convert_obj ouri o in
- List.iter (fun (u,_,_,_,_ as o) ->
-(* prerr_endline ("+"^NUri.string_of_uri u); *)
- NUri.UriHash.add cache u o) l;
- HExtlib.list_last l
+ try
+ let o,_ = CicEnvironment.get_obj CicUniv.oblivion_ugraph ouri in
+ let l = OCic2NCic.convert_obj ouri o in
+ List.iter (fun (u,_,_,_,_ as o) ->
+ (* prerr_endline ("+"^NUri.string_of_uri u); *)
+ NUri.UriHash.add cache u o) l;
+ HExtlib.list_last l
+ with CicEnvironment.Object_not_found u ->
+ raise (ObjectNotFound
+ (lazy (NUri.string_of_uri (OCic2NCic.nuri_of_ouri u))))
;;
let clear_cache () = NUri.UriHash.clear cache;;