If you're going to eat the exception and morph it into a more general exception (a possibly evil thing to do, but whatever), then at least pass on the original exception as  the InnerException.

catch(Exception ex) { throw new Exception("This file is not a valid Umbraco package! No package.xml found!", ex); }