Способ, которым вы управляете этим, является внутренним кодом кода, который должен включать выполнение в свой параметр innerException
, если вы планируете бросать новое исключение или просто использовать throw;
, чтобы исключить появление пузырьков.
try
{
//outter code block;
try
{
//inner code block;
}
catch(Exeption ex)
{
throw new MySpecialException("Some Extra Information", ex);
// or
throw;
}
}
catch(Exeption ex)
{
//ex.InnerException contains the "ex" from up above if you used MySpecialException
// or ex will be the same exception with the same stack trace if you used throw;
}
Обратите внимание, что считается очень плохой практикой, чтобы сделать throw new Exception
вы всегда должны бросать некоторое более производное исключение или your own user exception и это исключение вы бросаете следует добавить новую порцию информации. Если вам не нужно создавать новое исключение, чтобы добавить дополнительную информацию, просто используйте throw;
У вас действительно есть код с 'catch (Exeption ex)' в качестве обработчиков исключений? Вы не должны этого делать. Это так же плохо, как использование 'goto'. – Enigmativity