                    (case m
                      :withdraw withdraw
                      :deposit deposit
-                     (throw (Exception. (str "Unknown request -- make-account "
-                                             m)))))]
+                     (throw (IllegalArgumentException.
+                             (str "Unknown request -- make-account "
+                                  m)))))]
     dispatch))
 
 ;; Exercise 3.1

        :reset-count (reset! cnt 0)
        (do (swap! cnt inc)
            (f x))))))

  (let [sum (atom init)]
    (fn [n]
      (swap! sum + n))))

;; Exercise 3.2
(defn make-monitored [f]
