diff options
author | Daniil Baturin <daniil@baturin.org> | 2016-12-23 03:05:49 +0700 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2016-12-23 03:05:49 +0700 |
commit | 19b0b3effbcfd073b46c7f00f49062cc83e2936f (patch) | |
tree | fc50bc7c5503128bcc8e797edfbb8ebc0760f0fd | |
parent | 3624972bc7ba2c6d7fb789549a1343c0881f4871 (diff) | |
download | vyconf-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.ml | 10 |
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 *) |