Как настроить innerexception.message для system.data.updateexception в asp.net

StackOverflow https://stackoverflow.com/questions/5830127

Вопрос

Прежде всего, спасибо, что нашли время, чтобы прочитать мой пост. У меня есть вопрос, который может быть новичками для торта для некоторых.

Я добавляю данные в таблицу базы данных, используя структуру объекта. При добавлении дублированного первичного ключа я получаю исключение в innerexception.message, который гласит «нарушение ограничения первичного ключа« pk_studentid ». Невозможно вставить дубликат ключа в объект« dbo.students ». Заявление было прекращено».

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

Как я могу это сделать?

Я попытался унаследовать от system.data.updateexception и установить проверку, чтобы увидеть, что читает innerexception.message, а затем изменить его соответствующим образом. Это не сработало.

Спасибо,

Это было полезно?

Решение

Я думаю, что это сделает то, что вы хотите.

        Try
            'your code
        Catch ex As Exception
            'store the ex.Message where you want

            Throw New Exception("Your custom message here.")
        End Try

Пример:

Private Sub uiFunction()
    Dim errorMessage As String
    Try

        'a call to a BLL function/sub that could cause an exception
    Catch ex As Exception
        errorMessage = ex.Message() 'ex.Message() = "Your custom message."
    End Try
End Sub

Public Sub BLLFunction()
    Try
        'run your code that could cause an exception
    Catch ex As Exception
        Throw New Exception("Your custom message.")
    End Try
End Sub
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top