错误处理
    try
    高级语言通常都内置了一套try…except…finally…的错误处理机制,Python也不例外
    https://docs.python.org/2/library/exceptions.html#exception-hierarchy 常见的错误类型和继承关系
    不需要在每个可能出错的地方去捕获错误,只要在合适的层次去捕获错误就可以了
    调用堆栈
    如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出
    记录错误
    如果不捕获错误,自然可以让Python解释器来打印出错误堆栈,但程序也被结束了。既然我们能捕获错误,就可以把错误堆栈打印出来,然后分析错误原因,同时,让程序继续执行下去。
    Python内置的logging模块可以非常容易地记录错误信息:
    抛出错误
    程序也可以主动抛出错误,让调用者来处理相应的错误
    调试
    断言assert
    logging
    pdb
    pdb.set_trace()
    IDE
    Python IDE:PyCharm
    Eclipse with PyDev
    虽然用IDE调试起来比较方便,但是最后你会发现,logging才是终极武器