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 に答える