At times you would like to transform the type of an exception, and afterwards holding the initial exception as internal exception is the best you can do. Even though it should be toss new MyCustomException(myMessage, ex); of course.Your second instance will reset the exception's stack trace. The first most precisely preserves the origins with the e