Comment personnaliser InnerException.Message pour System.Data.UpdateException dans ASP.NET
-
27-10-2019 - |
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,
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