0

我正在尝试创建一个应用程序,用户可以在其中明确看到他们违反的 SQL 规则,如果他们输入错误的输入来持久化或用于查询数据库。我想在浏览器上将其显示为弹出消息,我也在客户端使用 AngularJS,在后端使用 SpringBoot。我看过他们讨论如何在控制台上打印它的帖子, 显示 SQL 错误消息

public static void printSQLException(SQLException ex) {

for (Throwable e : ex) {
    if (e instanceof SQLException) {
        if (ignoreSQLException(
            ((SQLException)e).
            getSQLState()) == false) {

            e.printStackTrace(System.err);
            System.err.println("SQLState: " +
                ((SQLException)e).getSQLState());

            System.err.println("Error Code: " +
                ((SQLException)e).getErrorCode());

            System.err.println("Message: " + e.getMessage());

            Throwable t = ex.getCause();
            while(t != null) {
                System.out.println("Cause: " + t);
                t = t.getCause();
            }
        }
    }
  }
}

但在那个问题中,它显示了如何在控制台而不是浏览器中检索它。默认情况下,HttpError 消息来自 SpringBoot,它提供了 BadSQLGrammarExcpetion。我需要确切的 SQLError 消息来显示数据库上发生的实际错误。我对 AngularJS 有点陌生,因为我主要是后端开发人员。因此,如果它们是可以提供的任何示例,我将不胜感激。

4

1 回答 1

0

所以我采取了不同的方法......而不是明确地尝试显示已经发生的 SQL 错误,基于发生的场景,我编写了自己的异常消息并通过错误对象显示它们。这不会为用户提供太多信息,因此可能会导致安全漏洞,但足以了解已发生的问题。

于 2018-09-20T18:32:21.043 回答