Игнорирование исключений

Если вы хотите показать это в полях ввода, я бы посоветовал вам разобрать дату в самом классе, как показано ниже, и использовать ее в полях ввода:

  1. Для года вы можете сделать: [ 110]
  2. Для месяца создайте массив названий месяцев, например: let monthNames = ['Jan', 'Feb', ..., 'Dec'], получите индекс месяца по дате и используйте его для получения названия месяца monthNames[newDate.getMonth()]
  3. Для даты: [113 ]

Если вы хотите просто отобразить дату в шаблоне HTML, вы можете использовать Angular Datepipe , как показано ниже:

  1. Для года, [114 ]
  2. Для месяца {{newDate | date:'MMM'}}
  3. Для даты {{newDate | date:'dd'}}

6
задан stimms 24 October 2008 в 02:58
поделиться

6 ответов

Просто перепишите его как

catch (UnauthorizedAccessException) {}
12
ответ дан 8 December 2019 в 14:49
поделиться

Как Dave M. и tvanfosson сказали, Вы хотите переписать его как

catch (UnauthorizedAccessException) {}

Больший вопрос, который нужно задать, однако, состоит в том, почему Вы ловите исключение при игнорировании его (обычно называемое глотание исключения)? Это обычно - плохая идея, как она может (и обычно делает), скрывают проблемы в приложении во времени выполнения, которое может привести к очень странным результатам и трудное время, отладив их.

2
ответ дан 8 December 2019 в 14:49
поделиться

Принятие комментария в Вашем исходном коде является детальным описанием того, что Вы пытаетесь сделать, я думаю, что Вы хотите записать это как это:

foreach (FileInfo fi in di.GetFiles())
{
    //TODO:  what exceptions should be handled here?
    collection.Add(fi.Name);
}

// populate collection for each directory we have authorized access to
foreach (DirectoryInfo d in di.GetDirectories())
{
    try
    {
        populateItems(collection, d);
    }
    catch (UnauthorizedAccessException)
    {
        //ignore and move onto next directory
    }
}

И затем необходимо работать над этим объект TODO.

1
ответ дан 8 December 2019 в 14:49
поделиться

Даже при том, что я - Java-разработчик (не C#), @Scott Dorman является абсолютно правильным. Почему Вы - "глотание исключения"? Еще лучше, что могло бросить UnauthorizedAccessException? Вот возможности здравого смысла:

  1. Файл не существует
  2. Каталог не существует
  3. Текущий поток управления не имеет корректных полномочий безопасности. В *отклоняют мир, текущий поток может быть в неправильной группе или неправильном пользователе.
  4. Диск разрушается
  5. ACL файла установлен на только для записи, но не читают. Аналогично, для каталога.

Вышеупомянутое, конечно, является неполным списком.

-1
ответ дан 8 December 2019 в 14:49
поделиться

Я обычно делаю

Debug.WriteLine(ex.message)

(тот путь я могу просто установить точку останова в исключении, в случае необходимости, также),

1
ответ дан 8 December 2019 в 14:49
поделиться

Я согласен с людьми, которые говорят, что, вероятно, просто игнорировать исключение - плохая идея. Если вы не собираетесь его перекидывать, то хотя бы где-нибудь зарегистрируйте. Я написал небольшие инструменты, обрабатывающие список файлов, в которых я не хотел, чтобы ошибки отдельных файлов приводили к сбою всей программы, и в таких случаях я печатал предупреждающее сообщение, чтобы видеть, какие файлы были пропущены.

Единственный раз, когда я лично ловлю исключение, не называя его, как в catch (xxxException), я собираюсь отреагировать на него каким-либо образом, а затем повторно выбросить его, чтобы я мог поймать его во внешней процедуре. Например:

try
{
    // do something
    // ...
}
catch(UnauthorizedAccessException)
{
    // react to this exception in some way
    // ...

    // let _someone_ know the exception happened
    throw;
}
1
ответ дан 8 December 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: