diff --git a/bin/main.ml b/bin/main.ml
index d00cb913afdc19ade0c97b3a602e36fd4b374f0a..c45c8734d0b9b3fd83ab2cccfebc42a8c827cb0b 100644
--- a/bin/main.ml
+++ b/bin/main.ml
@@ -1,7 +1,7 @@
 open Dsl
 
 
-
+let usage = "Usage: dsl filename_dsl [-proof filename_proof] [-type filename_type] [-r repository_out] [-n] [-g] [-h] \n -n : don't overwrite type file \n -g : generate png from graph"
 
 (** [parse_args argrs proof_name type_name owerwrite repo_gen] Parses the command line arguments and returns a tuple containing the parsed values or default value.
     @param args string list: The list of command line arguments.
@@ -18,7 +18,7 @@ let rec parse_args args (proof_name : string) (type_name : string) (overwrite: b
       | "-n" :: tl -> parse_args tl proof_name type_name (not overwrite) dir_gen graph_gen
       | "-r" :: dir :: tl -> parse_args tl proof_name type_name overwrite dir graph_gen
       | "-g" :: tl -> parse_args tl proof_name type_name overwrite dir_gen (not graph_gen)
-      | "-h" :: _ -> print_endline "Usage: dsl filename_dsl [-proof filename_proof] [-type filename_type] [-r repository_out] [-n] [-g] [-h] \n -n : don't overwrite type file \n -g : generate png from graph"; exit 0
+      | "-h" :: _ -> print_endline usage; exit 0
       | _ :: tl ->parse_args tl proof_name type_name overwrite dir_gen graph_gen
       | [] -> (proof_name, type_name, overwrite,dir_gen,graph_gen) 
 
@@ -30,8 +30,10 @@ let rec parse_args args (proof_name : string) (type_name : string) (overwrite: b
     *)
 let gen (args : string array) = 
   let list_args =   Array.to_list args in
+  try 
   let name = args.(1) in
   let (proof_name, type_name, overwrite,repo_gen, graph_gen) = parse_args list_args ((Filename.basename name)^"_proof") ((Filename.basename name)^"_world_type") true "./generate" false in 
-  Gencoq.generate_coq_2files (Interface.parse_description name) (Filename.basename name) proof_name type_name overwrite repo_gen graph_gen;;
-
+  Gencoq.generate_coq_2files (Interface.parse_description name) (Filename.basename name) proof_name type_name overwrite repo_gen graph_gen
+  with _ -> print_endline usage; exit 0;;
+  
 gen Sys.argv;;