Exception handling design is an important but difficult subject in software development. In Java software development, the use of checked exceptions exacerbates the difficulty. In this paper, through the use of an architectural model, we show that an application can benefit from a separation of exceptions in terms of recoverability beyond distinguishing checked and unchecked exceptions. The architectural model helps evaluate and balance conflicting quality requirements such as modifiability, readability, and fault tolerance. Facilitated by object-oriented utility libraries, the architecture model guides the design from early stage of the development; an example is given to illustrate its use.