增加异常类设计和单元测试代码。