捕获异常并重新抛出异常时应考虑哪些最佳实践?我想确保保留了Exception对象的InnerException和堆栈跟踪。以下代码块之间的处理方式是否有所不同?
Exception
InnerException
try { //some code } catch (Exception ex) { throw ex; }
VS:
try { //some code } catch { throw; }
保存堆栈跟踪的方法是通过使用的throw;,这是合法以及
throw;
try { // something that bombs here } catch (Exception ex) { throw; }
throw ex;从本质上讲,就像从该点引发异常一样,因此堆栈跟踪只会到达您发出该throw ex;语句的位置。
throw ex;
迈克也是正确的,假设该异常允许您传递异常(建议)。
Karl Seguin在编程电子书的基础上也对异常处理进行了出色的撰写,这是一本不错的书。
编辑:工作链接到编程基础 pdf。只需在文本中搜索“ exception”即可。