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