Это не так, как это работает. Marshal.GetExceptionCode возвращает значащее число только в том случае, если CLR обнаружил исключение SEH. Он попытается перевести исключение в значимое управляемое исключение. Наиболее распространенными являются NullReferenceException, OverflowException, DivideByZeroException, StackOverflowException, AccessViolationException. SEHException является резервным.
Вы можете вызывать GetExceptionCode при обработке одного из этих исключений. Цыпленок и яйцо, управляемое исключение возникает первым.