Как я могу предотвратить исключение при отмене openfiledialog?

В моей программе есть кнопка, при нажатии на которую открывается openfiledialog для выбора картинки:

private string ChoosePicture()
{         
    fDialog.Title = "Select Picture";
    fDialog.Filter = "Image Files (*.bmp, *.gif, *.jpg)|*.bmp; *.gif*;*.jpg";
    fDialog.InitialDirectory = "C:";
    fDialog.ShowDialog();

    fDialog.AddExtension = true;
    fDialog.CheckFileExists = true;
    fDialog.CheckPathExists = true;

    //returns a string for the directory
    return fDialog.FileName.ToString();
}

Использование проверки на поле dialogresult также не решило мою проблему:

fDialog.AddExtension = true;
fDialog.CheckFileExists = true;
fDialog.CheckPathExists = true;

DialogResult res = fDialog.ShowDialog();
if (res == DialogResult.OK)
{                
    //returns a string for the directory
    return fDialog.FileName.ToString();
}

return null; 

Код работает, если я выбираю картинку и завершаю выбор файла. Однако если я отменяю процесс в любой момент между ними, я получаю исключение "Путь не имеет законной формы". Я не уверен, в какой части я представляю, что могу позаботиться об этом с помощью try-catch, однако я не уверен, какая часть вызывает проблему? Если я поставлю try catch вокруг вызова метода ChoosePicture(), я, по крайней мере, смогу предотвратить аварийное завершение программы, но исключение все равно будет возникать, когда в fdialogbox не выбрана картинка.

8
задан Joehl 30 November 2016 в 11:28
поделиться