Здравствуйте, .beginner, Вы писали:
B>Мне довольно часто приходится писать похожие обработчики ошибок,
B>когда в try-catch в блоке catch нужно сделать что то, что может снова привести к ошибке.
B>я решаю эту проблему неизящно, пример:
| | Скрытый текст |
| | B>B> private void LoadSettings()
B> {
B> string fileName = @"c:\Settings.xml";
B> bool needDelete = false;
B> try
B> {
B> // Пробуем загрузить настройки из файла, но не уверен, что файл правильный
B> gc1.MainView.RestoreLayoutFromXml(fileName);
B> }
B> catch (Exception ex)
B> {
B> // ставим флаг, что онужно грохнуть такой нехороший файл
B> needDelete = true;
B> }
B> if (needDelete)
B> {
B> try
B> {
B> File.Delete(fileName);
B> }
B> catch (Exception ex)
B> {
B> }
B> }
B> }
B>
|
| | |
B>Как то это громоздко. Нет ли способа делать это без двух блоков Try-catch и флага?
B>Спасибо за рекомендации!
А что мешает объединить всё в один блок?
private void LoadSettings()
{
string fileName = @"c:\Settings.xml";
bool needDelete = false;
try
{
// Пробуем загрузить настройки из файла, но не уверен, что файл правильный
gc1.MainView.RestoreLayoutFromXml(fileName);
}
catch (Exception ex)
{
try
{
File.Delete(fileName);
}
catch (Exception ex)
{
}
}
}