1

我正在使用来自 Quicklisp 的 SQLite 包装器,此处对其进行了描述。我注意到,例如,execute-non-query不返回任何内容,但会抛出sqlite-errors。但是,我不确定如何处理它们——据我所知,catch需要一个显式标记,而且我不确定包装器如何标记它们。

基本上,我想做这样的事情:

(if (no-error (execute-non-query *db* query-string))
    (do-happy-thing)
    (report-error))

我该怎么做呢?

4

1 回答 1

3

handler-case是你的朋友。

(handler-case 
    (progn
      (execute-non-query *db* query-string)
      (do-happy-thing))
  (sqlite-error (err) (report-error err))) ; err contains additional information
于 2014-11-10T00:27:42.223 回答