在将clojure与postgresql结合使用时,每当我发出的语句以某种方式出现格式错误或被数据库本身拒绝时,我都会收到类似以下错误的信息:
java.sql.BatchUpdateException:
Batch entry 0 drop schema public cascade was aborted.
Call getNextException to see the cause.
我如何调用getNextException才能看到我做错了什么?我从哪里调用它?
发布于 2011-08-16 15:56:53
下面的link on clojure/jdbc展示了如何使用Clojure/JDBC删除一个表。
它还说明了如何使用try catch块处理错误。
在try catch块中,您可以编写类似以下内容:
(.printStackTrace (.getCause e))
发布于 2013-02-07 07:01:59
我已经使用以下方法成功地删除/创建表,并在postgresql出错时获得准确的错误信息:
(defn drop-table [name]
(sql/with-connection db
(with-open [s (.createStatement (sql/connection))]
(try
(.addBatch s (str "drop table " name ))
(seq (.executeBatch s))
(catch Exception _)))))
(defn setup []
(comment "TODO: create tables here"))
(defn -main []
(try
(print "Dropping table...") (flush)
(drop-table "table_name")
(print "Creating database structure...") (flush)
(setup)
(println " done")
(catch Exception e (.getNextException e))))
https://stackoverflow.com/questions/7074327
复制相似问题