На основе этого ответа SO: Выявление кода ошибки, специфичного для COMException, I ' Я хочу знать, чтобы правильно обрабатывать COMExceptions в операционных системах и в нескольких версиях OL, если мне нужно посмотреть только на определенную часть исключения. Например,
private const uint HRESULT_OPERATIONABORTED = 0x80004004;
// ...
try {
// something that could throw COMExceptions
} catch (System.Runtime.InteropServices.COMException e) {
switch ((uint)e.ErrorCode) {
case HRESULT_OPERATIONABORTED:
break;
default:
break;
}
}
Достаточно ли это кроссплатформенность или необходимо учитывать только часть кода ошибки?
РЕДАКТИРОВАТЬ - Чтобы уточнить, мой точный вопрос заключается в том, является ли сравнение (uint)e.ErrorCode
с 0x80004004
слишком конкретным (то есть, всегда получаю ли я 0x80004004
для этой конкретной ошибки, независимо от OS / OL), или если это правильный способ делать что-то.