]> matita.cs.unibo.it Git - helm.git/commitdiff
bugfix: print a better exception than "Not_found" when "baseuri"
authorStefano Zacchiroli <zack@upsilon.cc>
Wed, 16 Apr 2003 15:41:30 +0000 (15:41 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Wed, 16 Apr 2003 15:41:30 +0000 (15:41 +0000)
parameter for "ls" method is empty or simply unparsable

helm/http_getter/http_getter.ml

index 501b9d8390dd8692488a0d095ed87adeffd92077..0792d30b52a8a58ada989efe6570d3f01ab30dcd 100644 (file)
@@ -71,16 +71,21 @@ let parse_output_format (req: Http_types.request) =
 let parse_ls_uri =
   let parse_ls_RE = Pcre.regexp "^(\\w+):(.*)$" in
   let trailing_slash_RE = Pcre.regexp "/+$" in
+  let wrong_uri uri =
+    raise (Http_getter_bad_request ("Invalid /ls baseuri: " ^ uri))
+  in
   fun (req: Http_types.request) ->
     let baseuri = req#param "baseuri" in
-    let subs =
-      Pcre.extract ~rex:parse_ls_RE
-        (Pcre.replace ~rex:trailing_slash_RE  baseuri)
-    in
-    match (subs.(1), subs.(2)) with
-    | "cic", uri -> Cic uri
-    | "theory", uri -> Theory uri
-    | _ -> raise (Http_getter_bad_request ("Invalid /ls baseuri: " ^ baseuri))
+    try
+      let subs =
+        Pcre.extract ~rex:parse_ls_RE
+          (Pcre.replace ~rex:trailing_slash_RE  baseuri)
+      in
+      (match (subs.(1), subs.(2)) with
+      | "cic", uri -> Cic uri
+      | "theory", uri -> Theory uri
+      | _ -> wrong_uri baseuri)
+    with Not_found -> wrong_uri baseuri
 ;;
 
   (* global maps, shared by all threads *)