Come personalizzare InnerException.Message per System.Data.UpdateException in ASP.NET
-
27-10-2019 - |
Domanda
Prima di tutto grazie per aver dedicato del tempo per leggere il mio post. Ho una domanda che può essere un pezzo di torta newbie per alcuni.
Io sono l'aggiunta di dati a una tabella di database utilizzando Entity Framework. Quando si aggiunge un duplicato chiave primaria ottengo un'eccezione in InnerException.Message che recita "Violazione di vincolo PRIMARY KEY 'PK_StudentID'. Impossibile inserire la chiave duplicata 'dbo.Students' oggetto. L'istruzione è stata terminata."
Tuttavia, quello che voglio fare è quello di riformulare questo messaggio di errore per l'utente finale, ma anche salvare questo messaggio esatto con il nome della tabella e il nome della colonna ai miei registri per più tardi. In sostanza, voglio riformulare il messaggio di errore "Non si può avere una voce duplicata per studenti Identification Number. Si prega di inserire un nuovo valore."
Come posso fare questo?
Ho cercato di ereditare da System.Data.UpdateException e porre se di controllo per vedere ciò che l'innerexception.message legge, e quindi modificare di conseguenza. Che non ha funzionato.
Grazie,
Soluzione
I think this will do what you want.
Try
'your code
Catch ex As Exception
'store the ex.Message where you want
Throw New Exception("Your custom message here.")
End Try
Example:
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