Это не может быть напечатано в Исключении, потому что возможно бросить объекты в .Net, которые не являются производными от System.Exception. Это невозможно в C # или VB.Net, но возможно в других языках на основе CLR. Следовательно, API должен поддерживать эту возможность и использовать объект типа.
Так что, хотя оно и не должно быть нулевым, на самом деле оно не может быть System.Exception.
Подробнее см. Раздел 10.5 спецификации CLI (в частности, правило 40 CLS)