Как написать конкретный улов для трехуровневого исключения с сообщением - PullRequest
1 голос
/ 15 февраля 2012

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

Исключение составляет:

var exception = new Exception ("", new Exception ("", новое исключение ("Нарушение ограничения UNIQUE KEY 'UKC_Invoice_Organisation'")));

Кто-нибудь знает, как написать улов?

1 Ответ

0 голосов
/ 15 февраля 2012

Помимо первоначального ответа «о боже, почему» ...

catch (Exception e)
{      
  if (e.getCause() != null && e.getCause().getCause() != null && e.getCause().getCause().getMessage().equals("Violation of UNIQUE KEY constraint 'UKC_Invoice_Organisation'")
  {
    //do special handling here
  } else
    throw e;
}

Тем не менее, пересмотрите, почему у вас есть такой тип формата исключений.Подумайте о расширении Exception, чтобы вместо этого вы могли написать блок catch (MyCustomException e).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...