COMException выброшен, но не пойман в C#

У меня есть следующий код для нажатия на кнопку:

        private void buttonConnect_Click(object sender, EventArgs e)
    {
        _BMDSwitcherConnectToFailure failReason = 0;
        string address = textBoxIP.Text;

        try
        {
            // Note that ConnectTo() can take several seconds to return, both for success or failure,
            // depending upon hostname resolution and network response times, so it may be best to
            // do this in a separate thread to prevent the main GUI thread blocking.
            m_switcherDiscovery.ConnectTo(address, out m_switcher, out failReason);
        }
        catch (COMException)
        {
            // An exception will be thrown if ConnectTo fails. For more information, see failReason.
            switch (failReason)
            {
                case _BMDSwitcherConnectToFailure.bmdSwitcherConnectToFailureNoResponse:
                    MessageBox.Show("No response from Switcher. Are you sure the IP is correct?", "Error");
                    break;
                case _BMDSwitcherConnectToFailure.bmdSwitcherConnectToFailureIncompatibleFirmware:
                    MessageBox.Show("Switcher has incompatible firmware", "Error");
                    break;
                default:
                    MessageBox.Show("Connection failed for unknown reason", "Error");
                    break;
            }
            return;
        }

        SwitcherConnected();
    }

Я заметил, что на другом компьютере программа не запускается. Я настраиваю VS, чтобы сломать на определенной ошибке, и я получаю это:

Exception thrown: 'System.Runtime.InteropServices.COMException'

Additional information: Error HRESULT E_FAIL has been returned from a call to a COM component.

Это бросает это на следующую строку:

_switcherDiscovery.ConnectTo(address, out m_switcher, out failReason);

Я изо всех сил пытаюсь выяснить, что это исключение не поймано кодом.

1 ответ

Проверьте в параметрах отладки Visual Studio, что у вас выбран этот тип исключения:

Отладка - > Исключения

Разверните CLRE (исключения общеязыковой среды выполнения)

Затем разверните - System.Runtime.InteropServices

Другие вопросы по тегам