Member 14145167 Ответов: 1

Как мне поймать это исключение objectdisposedexception


Я пытался поймать исключение с помощью try-catch, но это не работает

Что я уже пробовал:

try
{
    form.Close();
    form.Show();
}
catch (ObjectDisposedException)
{
    form.Show();
}

1 Ответов

Рейтинг:
1

OriginalGriff

Это прекрасно работает для меня, независимо от того, создаю ли я экземпляр формы и пытаюсь ли это сделать:

private void Button1_Click(object sender, EventArgs e)
    {
    FrmMain form = new FrmMain();
    try
        {
        form.Close();
        form.Show();
        }
    catch (ObjectDisposedException)
        {
        form.Show();
        }
    }
Или я использую существующую форму:
private void Button1_Click(object sender, EventArgs e)
    {
    try
        {
        Close();
        Show();
        }
    catch (ObjectDisposedException)
        {
        Show();
        }
    }
В любом случае, отладчик показывает, что улов работает нормально.
Я думаю, что вы запутались, потому что вы получите идентичное исключение внутри обработчика catch, когда попытаетесь показать форму во второй раз. Попробовать это:
private void Button1_Click(object sender, EventArgs e)
    {
    FrmMain form = new FrmMain();
    try
        {
        form.Close();
        form.Show();
        }
    catch (ObjectDisposedException ex)
        {
        MessageBox.Show(ex.Message);
        }
    }
Он должен показать вам ошибку.


Member 14145167

Ладно как мне это исправить