summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2016-12-23 03:05:49 +0700
committerDaniil Baturin <daniil@baturin.org>2016-12-23 03:05:49 +0700
commit19b0b3effbcfd073b46c7f00f49062cc83e2936f (patch)
treefc50bc7c5503128bcc8e797edfbb8ebc0760f0fd
parent3624972bc7ba2c6d7fb789549a1343c0881f4871 (diff)
downloadvyconf-19b0b3effbcfd073b46c7f00f49062cc83e2936f.tar.gz
vyconf-19b0b3effbcfd073b46c7f00f49062cc83e2936f.zip
Handle Xml exceptions in Reference_tree.load_from_xml and re-raise as Bad_interface_definition
to make things simpler for callers.
-rw-r--r--src/reference_tree.ml10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/reference_tree.ml b/src/reference_tree.ml
index 8372ea0..8b26449 100644
--- a/src/reference_tree.ml
+++ b/src/reference_tree.ml
@@ -119,12 +119,14 @@ let load_from_xml reftree file =
try Pcre.split (Xml.attrib xml "extends")
with _ -> []
in List.fold_left (insert_from_xml basepath) reftree children
-
-
| _ -> raise (Bad_interface_definition "Should start with <interfaceDefinition>")
in
- let xml = Xml.parse_file file in
- xml_to_reftree xml reftree
+ try
+ let xml = Xml.parse_file file in
+ xml_to_reftree xml reftree
+ with
+ | Xml.File_not_found msg -> raise (Bad_interface_definition msg)
+ | Xml.Error e -> raise (Bad_interface_definition (Xml.error e))
(* Validation function *)