清理代码，正确抛出异常