throw; 还是throw e

     如果捕获到一个异常,到底是如何重新抛出。
 catch (Exception e) { throw; } 还是 catch (Exception e) { throw e; }

throw;会保留原始的异常栈信息。这样方便调试很容易找到出错的行号
throw e 会虽然异常信息都保留了,但是会修改异常堆栈信息,throw e那个行就会成为出错的行.而不是你try里面调用的代码时候实际的出错行了。
so,一般情况下重新抛出异常应该使用throw;.
什么时候使用throw e呢?
似乎只有在你想抛出一个新的异常才用。
谁能说清楚,请指点下吧?
原文地址:https://www.cnblogs.com/xhan/p/1533816.html