Показать сообщение об ошибке SQL в AngularJS

Я пытаюсь создать приложение, в котором пользователь может явно видеть правила 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, так как я в основном бэкэнд-разработчик. Так что, если есть какие-либо примеры, которые можно предложить, я был бы очень признателен.


person user3116769    schedule 31.10.2017    source источник


Ответы (1)


Поэтому я выбрал другой подход... вместо того, чтобы явно пытаться отобразить возникшие ошибки SQL, основываясь на сценарии, который имел место, я написал свои собственные сообщения об исключениях и отобразил их через объект ошибки. Это не дает пользователям слишком много информации, которая может привести к нарушениям безопасности, но достаточно, чтобы узнать о возникшей проблеме.

person user3116769    schedule 20.09.2018