首页 > 代码库 > 几条关于异常处理的备忘

几条关于异常处理的备忘

checked exception 有时会成为代理的障碍(又多了一条不用checked exception的理由)。


某lib的异常类型设计为单根的异常类型树时,根类型选择 extends RuntimeException,而不是 Exception,但是fatal和non fatal最好还是清楚的分开成两枝。


lib最好特别为其实现的实例化过程设计专门的异常类型。


回调接口可以作为跨线程异常处理的一般手段。


异常处理问题是队列模式(或者任何非同步调用)的一个短处。


代理可能为实现单线程队列提供方便,但同时可能为异常处理增加额外的复杂度。


前提检查的异常应与逻辑异常明确区分,代理不要擅自忽略前提检查,——代理应该明确follow接口的contract或者明确提出自己的contract。