diff --git a/tools/makedict/src/com/android/inputmethod/latin/DictionaryMaker.java b/tools/makedict/src/com/android/inputmethod/latin/DictionaryMaker.java
index 1ba01075e77d8392bf3a64577b64a645267e5542..afd60230820a81b2092722a70f2b81d14665e1d7 100644
--- a/tools/makedict/src/com/android/inputmethod/latin/DictionaryMaker.java
+++ b/tools/makedict/src/com/android/inputmethod/latin/DictionaryMaker.java
@@ -105,7 +105,8 @@ public class DictionaryMaker {
                     } else {
                         // All these options need an argument
                         if (args.isEmpty()) {
-                            throw new RuntimeException("Option " + arg + " requires an argument");
+                            throw new IllegalArgumentException("Option " + arg + " is unknown or "
+                                    + "requires an argument");
                         }
                         String filename = args.get(0);
                         args.remove(0);
@@ -121,6 +122,8 @@ public class DictionaryMaker {
                             outputBinary = filename;
                         } else if (OPTION_OUTPUT_XML.equals(arg)) {
                             outputXml = filename;
+                        } else {
+                            throw new IllegalArgumentException("Unknown option : " + arg);
                         }
                     }
                 } else {
@@ -133,7 +136,7 @@ public class DictionaryMaker {
                     } else if (null == outputBinary) {
                         outputBinary = arg;
                     } else {
-                        throw new RuntimeException("Several output binary files specified");
+                        throw new IllegalArgumentException("Several output binary files specified");
                     }
                 }
             }