Удобный для пользователя, все зависит от контекста, поэтому от вашего бизнес-слоя вы должны просто повторно выбросить свое исключение
catch (Exception ex)
{
GeneralClass.LogError(ex);
throw;
}
Затем наверху вашего нанимателя, откуда вы на самом деле вызываете метод Delete, у вас снова должен быть оператор try-catch, но здесь, в вашем улове, вы должны извлечь сообщение и выписать его пользователю, либо в виде html Аякс-всплывающее окно или что-то еще. Как я уже сказал, удобство для пользователя зависит от контекста, о котором вы здесь мало что рассказали.