title: How to catch IllegalArgumentException in tests using thrown-with-msg?
body: <p>I try to test the throw of an exception:</p>
  
  <pre><code>;;; src
  ;; Courtesy https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj
  (defmacro assert-args [&amp; pairs]
    `(do (when-not ~(first pairs)
           (throw (IllegalArgumentException.
                   (str (first ~'&amp;form) " requires " ~(second pairs) " in " ~'*ns* ":" (:line (meta ~'&amp;form))))))
         ~(let [more (nnext pairs)]
            (when more
              (list* `assert-args more)))))
  
  (defmacro my-macro []
    (assert-args false "foobar")
    #_(...))
  
  ;;; test
  (deftest x-fn-test
    (is (thrown-with-msg? IllegalArgumentException #"foo" (my-macro))))
  </code></pre>
  
  <p>But none of the exceptions are caught by the test framework, but are all thrown.</p>