Question

Tout d'abord merci d'avoir pris le temps de lire mon post. J'ai une question qui peut être un morceau de gâteau de débutant pour certains.

J'ajouter des données à une table de base de données en utilisant Entity Framework. Lors de l'ajout d'un double clé primaire, je reçois une exception dans InnerException.Message qui se lit « Violation de contrainte de clé primaire « PK_StudentID ». Impossible d'insérer clé en double dans l'objet « dbo.Students ». L'instruction a été interrompue. »

Cependant, ce que je veux faire est de reformuler ce message d'erreur pour l'utilisateur final, mais aussi enregistrer ce message exact avec le nom de la table et le nom de la colonne à mes journaux pour plus tard. Essentiellement, je veux reformuler le message d'erreur « Vous ne pouvez pas avoir une entrée en double pour l'étudiant numéro d'identification. S'il vous plaît entrer une nouvelle valeur. »

Comment puis-je faire?

J'ai essayé d'hériter de System.Data.UpdateException et mettre un chèque si pour voir ce que le innerexception.message lit, puis le modifier en conséquence. Ça n'a pas marché.

Merci,

Était-ce utile?

La solution

Je pense que cela va faire ce que vous voulez.

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

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

Exemple:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top