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,

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top