У меня есть служебный класс xmlbuilder, который вызывает несколько методов для создания файла xml
public XMLBuilder(String searchVal)
{
this.searchVal = searchVal;
try
{
getData();
returnedData = processDataInToOriginalFormat();
WriteBasicTemplate();
}
catch (WebException)
{
//If this is thrown then there was an error processing the HTTP request for MSO data.
//In this case then i should avoid writing the xml for concordance.
serviceAvailable = false;
MessageBox.Show("Could not connect to the required Service.");
}
catch (NoDataFoundException ndfe)
{
//propegate this back up the chain to the calling class
throw;
}
processDataInToOriginalFormat();
это метод в классе, который вызывает исключение, если служба недоступна, и я распространил исключение здесь, чтобы иметь дело с ним. Я собирался попытаться установить логический флаг, чтобы указать, нужно ли писать определенный бит XML. Если флаг ложен, не пишите его.
Я забыл, однако, что исключения останавливают поток программы, и теперь я понимаю, что это невозможно, как будто происходит исключение, остальная часть кода не возобновляется. как я могу обойти это? просто добавьте вызов WriteBasicTemplate();
в мое предложение catch?
Спасибо