在编写自己的的dll时,总会用到其它人写的类库(至少你会用BCL吧)。那么免不了要面对别人扔出的异常。那么在我自己的dll的类中,应该怎么面对这些异常呢?
catch是一定的,但catch了之后呢,如果我自己能挽救回来当然也就没事儿,如果挽救不回来,我该把这个异常吃掉,转而扔出一个我自定义的异常呢?还是把原来的异常rethrow出去?
似乎选哪个都讲得通。
一、吃掉别人的异常,扔出自己的。 因为类库的实现细节应该对调用者透明,显然类库内部产生的异常就是属于实现细节,不应该暴露给调用者。
二、将原来的异常再扔出去。 因为将原来的异常消化掉,再扔出自定义的异常,会掩盖真正的出错源。好比当你通过代理调用远程对象的方法时,当远程对象扔出异常,而被代理截获后,统一扔出方法调用出错异常,恐怕你就永远也不能明白,到底是哪里出了错吧?
那么,我该怎么选择呢?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步