每当方法或类成员无法完成其设计要完成的任何任务时,就应该抛出异常。
因此对于属性设置器来说,如果设置器无法设置属性,那么它应该抛出异常。
至于是否应该捕获它并重新抛出它,答案是肯定的,但前提是您需要在将异常传递到堆栈之前立即在 setter 中处理异常……但记录它并不是这样做的理由。一般来说,您应该在更高级别实现异常的横切日志记录,其中异常不会被重新抛出...如果您正在处理堆栈中较高位置的那些横切关注点,那么就不会,绝对不要捕获并重新抛出相同的异常。
但是,如果您正在编写一个工具或框架库,您希望组件的客户端具有一组明确定义的预期异常,并且您已经定义了组件将向客户端代码抛出的自定义异常以及哪个客户端如果组件期望看到,那么您可能需要捕获 CLR 生成的异常并重新抛出您自己的自定义异常。 在将其向上传递到堆栈之前,始终将实际的底层异常包含在您的自定义异常“InnerException”属性中,以便数据它可供最终使用它的任何系统使用。
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |