Beh io farei un parametro di output (come da esempio sopra, in cui semplicemente prende l'ID del record inserito) chiamandolo @ESITO, con il numeretto che se e' minore di zero, indica che c'e' stato qualche problema, e magari un altro parametro di output di tipo Varchar(255) con il testo del messaggio di errore, se c'e', anche se credo che "ex.message" di ADO.Net rifletta quella stessa descrizione del provider.

Comunque non ho ben capito perche' hai una sola variabile per due problematiche diverse, quando hai tempo posta la stored procedure. Ciao !