var sqlException = GetSqlExceptionFromBaseException(ex); if (sqlException != null) { //2627 is the exception number for a unique constraint violation if (sqlException.Number == 2627) { var errorMessage = Messages.alreadyExists; var sentences = sqlException.Message.Split('.'); var duplicateValue = Regex.Matches(sqlException.Message, @"\(([^)]*)\)"); if (sentences.Count() > 3 && duplicateValue.Count > 0) { errorMessage = String.Format(Messages.alreadyExistsWithValue, duplicateValue[0].Value.Replace("(", "").Replace(")", "")); } throw new DuplicatePropertyException(errorMessage); } else { throw ex; } } else { throw ex; } }The exception actually says check inner exception for details (and I can see the actual exception when I do so). I'm wondering what is the best way to throw this error but at the same time present that inner exception text as well?