2010-01-25

throw ex 和 throw 一样么?

不一样,
throw 是输出整个stacktrack,考虑多层设计中,UI层有try catch, 逻辑层有 try catch, 数据层有try catch, 三者均使用 throw, 假设是在数据层出错,输出的exception 信息会显示这三层的throw point,由此可以知道 exception的源头在数据层;如果是在逻辑层出错,会输出两层的 throw point, 由此可知 exception 的源头在逻辑层
但是用 throw ex的话,会清空stacktrace,如上例,你只能看到UI层的exception,无法获知到底是发生在UI层还是逻辑层还是数据层

因此,总是使用throw 抛出原始 exception

No comments: