refer to:
http://www.runoob.com/python/python-exceptions.html
http://www.pythondoc.com/pythontutorial3/errors.html
http://www.cnblogs.com/rubylouvre/archive/2011/06/22/2086644.html