У меня есть приложение, в котором я загружаю изображение динамически.Допустим, это изображение не существует, и мы хотим уведомить пользователя и затем выйти.В моем основном цикле у меня есть обработка исключений, которая прекрасно работает, когда я читаю файлы с StreamReader.Однако, если я выбрасываю исключение из другой функции, приложение просто падает, и в отчете об ошибке я вижу выброшенное исключение (IOException).Чтобы получить представление о приложении:
public MainWindow()
{
try {
InitializeComponent();
Load(myFile);
} catch (IOException e) {
MessageBox.Show("Opening failure.");
Application.Current.Shutdown();
}
}
public void Load(string imgPath)
{
string tmpStr;
string[] tmp;
using (StreamReader sr = new StreamReader("myFile.txt", System.Text.Encoding.Default)) {
while ((tmpStr = sr.ReadLine()) != null) {
tmp = tmpStr.Split(' ');
...
}
}
}
private void Grid_Click(object sender, RoutedEventArgs e)
{
...
if (!File.Exists(myFile)) {
throw new IOException("File doesnt exist");
}
...
}
НО, если я добавлю блок try-catch внутри Grid_Click, он поймает это исключение.