From 1b5e6594e44346fda8b432966f5550c7b7a929c2 Mon Sep 17 00:00:00 2001 From: Ondrej Zizka Date: Sun, 1 Dec 2024 14:04:13 +0100 Subject: [PATCH] Fix #118 (partially): Don't print stacktrace on SQL syntax. --- .../cz/dynawest/csvcruncher/CsvCruncherException.kt | 7 ++++++- src/main/kotlin/cz/dynawest/csvcruncher/HsqlDbHelper.kt | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/cz/dynawest/csvcruncher/CsvCruncherException.kt b/src/main/kotlin/cz/dynawest/csvcruncher/CsvCruncherException.kt index 43f8142..122fd52 100644 --- a/src/main/kotlin/cz/dynawest/csvcruncher/CsvCruncherException.kt +++ b/src/main/kotlin/cz/dynawest/csvcruncher/CsvCruncherException.kt @@ -9,4 +9,9 @@ open class CsvCruncherException : RuntimeException { class CrucherConfigException : CsvCruncherException { constructor(message: String?) : super(message) -} \ No newline at end of file +} + +class SqlSyntaxCruncherException : CsvCruncherException { + constructor(message: String?) : super(message) +} + diff --git a/src/main/kotlin/cz/dynawest/csvcruncher/HsqlDbHelper.kt b/src/main/kotlin/cz/dynawest/csvcruncher/HsqlDbHelper.kt index 9176fd5..b55c160 100644 --- a/src/main/kotlin/cz/dynawest/csvcruncher/HsqlDbHelper.kt +++ b/src/main/kotlin/cz/dynawest/csvcruncher/HsqlDbHelper.kt @@ -97,6 +97,15 @@ class HsqlDbHelper(val jdbcConn: Connection) { jdbcConn.prepareStatement(sql) } catch (ex: SQLSyntaxErrorException) { + if (ex.message!!.contains("unexpected token:")) { + throw SqlSyntaxCruncherException(""" + | The SQL contains syntax error: + | ${ex.message} + | $sql + | This may be your SQL error or caused by alteration by CsvCruncher. + | See https://github.com/OndraZizka/csv-cruncher/issues for known bugs. + | """.trimMargin()) + } if (ex.message!!.contains("object not found:")) { throw throwHintForObjectNotFound(ex, this, sql) }