关于程序的健壮性,该怎么处理

关于程序的健壮性
什么地方抛出异常?

什么地方捕捉异常?

什么地方处理异常?

什么时候防御?

在同一个类的public   和   prviate方法里

在多层结构的不同层里

请大家讨论一下,或者提供一个比价好的文章。

------解决方案--------------------
尽量不要在客户端抛出异常!
尽可能在多个层中都进行异常的捕获
在业务层处理异常
防御?
------解决方案--------------------
个人用法:
1。基本每个方法都要捕获。。。
2。需要与客户端互动的,抛出。。。(多数UI界面需要抛出较多)
3。所有异常都需要纪录,写入日志。。。