1,系统中有些错误符合java语法但却步符合业务逻辑,如果要用异常形式处理这些错误,则需要自定义异常
2,在分层的软件结构中,通常在表现层对其它层次的异常进行捕获处理,而往往需要对不同层次的异常进行分类处理,而如果用java自带的则不能够区分。
自己的异常定义可以从Exception继承,也可以从Throwable继承
对于异常进行适当分类,方便捕获后的处理
如果对于异常不能处理则抛出非受检异常(runtime),直接到最上层
http://www.iteye.com/news/27078