Этот вопрос близок к тому, что я хочу сделать, но не совсем там.
Есть ли способ упростить следующий код?
private bool ValidDirectory(string directory)
{
if (!Directory.Exists(directory))
{
if (MessageBox.Show(directory + " does not exist. Do you wish to create it?", this.Text)
== DialogResult.OK)
{
try
{
Directory.CreateDirectory(directory);
return true;
}
catch (IOException ex)
{
lblBpsError.Text = ex.Message;
}
catch (UnauthorizedAccessException ex)
{
lblBpsError.Text = ex.Message;
}
catch (PathTooLongException ex)
{
lblBpsError.Text = ex.Message;
}
catch (DirectoryNotFoundException ex)
{
lblBpsError.Text = ex.Message;
}
catch (NotSupportedException ex)
{
lblBpsError.Text = ex.Message;
}
}
}
return false;
}
Кажется, это пустая трата времени, и если я позже захочу изменить, как сообщать об ошибке пользователю, или, возможно, я хочу зарегистрировать эти ошибки или что-то еще, мне нужно изменить 5 разных блоков catch. Я что-то упускаю, или это нагло говорит о повторном использовании кода?
Я просто пытаюсь быть (тоже) ленивым?