A Simple Example
To see how error-kit handles exceptions, we’ll create a simple application and perpetrate some errors. Let’s write an app that parses log file entries. Our log file entries will look like this:
| 2008-10-05 12:14:00 WARN Some warning message here... |
In this imperfect world, it is inevitable that some miscreant will pass bad data to the log file parser. To deal with this, we will define an error:
| (use 'clojure.contrib.error-kit) |
| (deferror malformed-log-entry [] [msg] |
| {:msg msg |
| :unhandled (throw-msg IllegalArgumentException)}) |
The error takes a single argument, a msg describing the problem. The :unhandled value defers to a normal Clojure (Java) exception in the event that a caller chooses not to handle the error. (The ...
Get Functional Programming: A PragPub Anthology now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.