javax.servlet.http.HttpServlet类对于做J2EE开发的人来讲是再熟悉不过了,仔细观察一下此类的doGet等几个常见的方法定义,我们发现它们都会声明抛出IOException,如图一,
这说明当系统发生I/O异常时,系统对这种异常的处理是无能为力的,只能将之抛给容器,由容器来处理。由此可见,在分布式系统开发中,我们必须将I/O异常和业务异常区别对待,因为当发生I/O异常时,系统已经无能为力了,另外,把I/O异常往外抛也便于错误排查。图二便是一个典型的分布式开发中对I/O异常的处理方式。