From d4a381318f8bf5b0d41d7a1a6d7a4cefade8a44a Mon Sep 17 00:00:00 2001 From: Michele Alberti <michele.alberti@cea.fr> Date: Fri, 12 Mar 2021 08:50:42 +0100 Subject: [PATCH] Catch unexpected failures. --- model.ml | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/model.ml b/model.ml index 19ca382..8fc7eb5 100644 --- a/model.ml +++ b/model.ml @@ -153,26 +153,28 @@ let handle_nnet_range_values n_inputs in_channel = let retrieve_nnet_metadata filename = let open Result in let in_channel = Stdlib.open_in filename in - handle_nnet_header filename in_channel >>= fun () -> - handle_nnet_basic_info in_channel >>= fun (n_ls, n_ins, n_outs, max_l_size) -> - handle_nnet_layer_sizes n_ls in_channel >>= fun layer_sizes -> - handle_nnet_unused_flag in_channel >>= fun () -> - handle_nnet_min_input_values n_ins in_channel >>= fun min_input_values -> - handle_nnet_max_input_values n_ins in_channel >>= fun max_input_values -> - handle_nnet_mean_values n_ins in_channel >>= fun mean_values -> - handle_nnet_range_values n_ins in_channel >>= fun range_values -> - Stdlib.close_in in_channel; - Ok - { n_layers = n_ls; - n_inputs = n_ins; - n_outputs = n_outs; - max_layer_size = max_l_size; - layer_sizes; - min_input_values; - max_input_values; - mean_values; - range_values; } - + try + handle_nnet_header filename in_channel >>= fun () -> + handle_nnet_basic_info in_channel >>= fun (n_ls, n_ins, n_outs, max_l_size) -> + handle_nnet_layer_sizes n_ls in_channel >>= fun layer_sizes -> + handle_nnet_unused_flag in_channel >>= fun () -> + handle_nnet_min_input_values n_ins in_channel >>= fun min_input_values -> + handle_nnet_max_input_values n_ins in_channel >>= fun max_input_values -> + handle_nnet_mean_values n_ins in_channel >>= fun mean_values -> + handle_nnet_range_values n_ins in_channel >>= fun range_values -> + Stdlib.close_in in_channel; + Ok + { n_layers = n_ls; + n_inputs = n_ins; + n_outputs = n_outs; + max_layer_size = max_l_size; + layer_sizes; + min_input_values; + max_input_values; + mean_values; + range_values; } + with Failure msg -> + Error (Format.sprintf "Unexpected error: %s." msg) (* Generic model. *) -- GitLab