Почему метод не входит в пользовательское исключение? - PullRequest
0 голосов
/ 30 декабря 2011

Я пытаюсь поймать исключение, когда электронное письмо вводится дважды, и оно должно перехватить исключение, поскольку оно уникально.У меня есть следующий код для перехвата исключения:

Класс пользовательских исключений:

public class EmailAlreadyExistsException : Exception
{
    public EmailAlreadyExistsException(string message) : base(message) { }
}

Где предполагается, что исключение должно быть перехвачено:

public void UpdateUser(Customer customer)
{
    try
    {
        this.Entities.SaveChanges();
    }
    catch (CommonLayer.exceptions.EmailAlreadyExistsException ex)
    {
       throw ex;
    }              
}

1 Ответ

0 голосов
/ 30 декабря 2011

Спокойной ночи, исключение вызвано не пользовательское исключение (EmailAlreadyExistsException), поэтому ваш улов (CommonLayer.exceptions.EmailAlreadyExistsException ex) не кэшируется и продолжается, попробуйте следующее:

public void UpdateUser(Customer customer)
{
    try
    {
        this.Entities.SaveChanges();
    }
    catch (Exception ex)
    {
        if(ex.Message.Contains("EmailAlreadyExistsConstraint"))//custom if
            throw new CommonLayer.exceptions.EmailAlreadyExistsException(ex.Message);
        else
            throw ex;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...