Piszę komponent, który na najwyższym poziomie wywołuje metodę poprzez odbicie. Aby uczynić mój komponent łatwiejszym w użyciu, chciałbym wychwycić wszystkie wyjątki wywoływane przez wywoływaną metodę i odwijać je.Jak poprawnie odwija wyjątek TargetInvocationException?
Tak więc, mam coś takiego:
try { method.Invoke(obj, args); }
catch (TargetInvocationException ex) {
throw ex.InnerException;
}
Jednak to zdmuchuje wewnętrzną śladu stosu wyjątku. Nie mogę tu użyć tylko throw
(ponieważ ponownie wyrysowuję inny obiekt wyjątku). Co mogę zrobić w moim bloku catch, aby upewnić się, że pierwotny typ wyjątku, komunikat i śledzenie stosu są przez to przesyłane?
Nie trzeba umieszczać tagów w tytule pytania. Oznaczanie poprawnie jest wystarczające. – spender
Dlaczego uważasz, że łatwiej jest pomylić ślad stosu? –