Каков правильный способ обработки исключения внутри вложенного оператора using? У меня есть следующая часть кода:Ловкое исключение внутри вложенного Использование инструкции NHibernate
public void Create(Entity entity)
{
try
{
using (ISession session = NhibernateHelper.OpenSession())
{
try
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(entity);
transaction.Commit();
}
}
catch (TransactionException transactionException)
{
// log it
throw;
}
}
}
catch (TransactionException transactionException)
{
// log it
throw;
}
catch (SessionException sessionException)
{
// log it
throw;
}
catch (Exception exception)
{
// log it
throw;
}
}
Я видел несколько ответов, когда люди устанавливали инструкцию try/catch внутри вложенного использования. Я знаю, что использование инструкции состоит из try/finally. И мой вопрос заключается в правильном пути, чтобы поймать все возможные исключения. Должен ли я выполнять откаты внутри одного из операторов catch? Не могли бы вы предоставить мне правильный способ сделать это?
Вы используете это в веб-приложении? MVC? WinForms? потому что на первый взгляд, я бы сказал, что вы не хотите, чтобы в вашем приложении выглядел такой код. – Fran