组织结构你可以随时随地的定义异常,可以是任意的类,任意的包,函数,甚至是闭包。很多的库都有他们自己定义的异常模块:SQLAlchemy的异常定义在sqlalchemy.exc中,requests在request.exceptions中,Werkzeug在wekzeug.exceptions中,等等..这些正常的包都能通过刚才的方法导出异常,同事也能方便的被用户所调用他们的异常模块,并且知道异常在哪里被定义,什么时候来用哪种异常处理代码可能发生的异常。不过这些都不是强制的,越小的Python模块可能越想把异常整合在他们唯一的模块中。通常如果你的代码小到只有一个文件,就不用非得把代码和异常分成不同的文件或者模块。当然对于库的明智的选择是,把他们分成不同的文件或者模块。如果每个子系统都有一系列的异常
………………………………