2015-06-04 3 views
1
public async Task<StorageFile> GetFile(string fileName) 
    { 
     // throw new NotImplementedException(); 
     var _folder = ApplicationData.Current.LocalFolder; 
     try 
     { 
      var _file = await _folder.GetFileAsync(fileName); 
      return _file; 
     } 
     catch (FileNotFoundException) 
     { 
      //notify user about the exception. 
     } 
     return null; 
    } 

Это единственный метод в моем классе, который просто извлекает файл из локального хранилища. Я хочу уведомить пользователя обо всех исключениях. Если я попытаюсь сделать окно сообщения в заявлении catch, это будет тормозить первое правило солидного единства.Исключение исключений при соблюдении следующих принципов SOLID в winrt

Как настроить класс, который может выполнять мой другой класс обработчика, и предпринять необходимые действия? Мои первые мысли были обработчиками событий, но есть ли лучшая техника?

ответ

2
public async Task<StorageFile> GetFile(string fileName) 
    { 
     // throw new NotImplementedException(); 
     var _folder = ApplicationData.Current.LocalFolder; 
     try 
     { 
      var _file = await _folder.GetFileAsync(fileName); 
      return _file; 
     } 
     catch 
     { 
      throw; 
     } 
     return null; 
    } 

Вместо того, чтобы ловить Исключение, просто бросьте его к контроллеру, который его назвал. Обязательно попробуйте {} catch {}, окружающий вызов этого метода, и вы можете обрабатывать там Исключение (т. Е. Показывать окно сообщения).

+0

Да, давайте попробуем/поймаем с чем-то, кроме ретрова в нем ...;) –

+0

, поэтому я должен снова выбросить исключение и поймать его позже из другого класса, в который я хочу ввести этот класс .. thank you –

+1

Я согласен с использованием @KyleW try ... наконец-то или без обработки исключений для этого. В противном случае у mac есть хороший подход. – Blanthor

Смежные вопросы