Cuando se produce una excepción X como resultado directo de una excepción anterior Y, la propiedad InnerException de X debe contener una referencia a Y.
Utilice la propiedad InnerException para obtener el conjunto de excepciones que dieron lugar a la excepción actual.
Se puede crear una nueva excepción que detecte una excepción anterior. El código que controla la segunda excepción puede utilizar la información adicional de la excepción anterior para controlar el error de forma más adecuada.
Supongamos que existe una función que lee un archivo y aplica formato a los datos del mismo. En este ejemplo, cuando el código intenta leer el archivo, se produce IOException. La función detecta IOException y produce FileNotFoundException. IOException puede guardarse en la propiedad InnerException de FileNotFoundException de forma que permita examinar las causas del error inicial al código que detecta FileNotFoundException.
La propiedad InnerException, que contiene una referencia a la excepción interna, se establece cuando se inicializa el objeto Exception.