每天十分钟,十二天入门Python(十一)

# 对于错误的捕获和处理所有语言都类似:try-except-finally,配合Python内置的logging可以更好的输出错误信息.


import logging

try:

    print 'try beginning'

    print 10/0

except BaseException,e:

    logging.exception(e)

finally:

    print 'that\'s all,3Q'


# try beginning

# ERROR:root:integer division or modulo by zero

# that's all,3Q

# Traceback (most recent call last):

#   File "/Users/shijn/workspace/pyDemo/demo.py", line 9, in <module>

#     print 10/0

# ZeroDivisionError: integer division or modulo by zero

# 异常的抛出是可以我们自己实现的,只要通过简单的raise即可.


print 'try beginning'

raise ZeroDivisionError('invalid value')

# try beginning

# Traceback (most recent call last):

#   File "/Users/shijn/workspace/pyDemo/demo.py", line 8, in <module>

#     raise ZeroDivisionError('invalid value')

# ZeroDivisionError: invalid value

logging不会抛出错误,而且可以输出到文件,相比print和assert更友好.


logging允许你指定记录信息的级别,有debug,info,warning,error等几个级别,当我们指定level=INFO时,logging.debug就不起作用了。同理,指定level=WARNING后,debug和info就不起作用了。这样一来,你可以放心地输出不同级别的信息,也不用删除,最后统一控制输出哪个级别的信息。


logging的另一个好处是通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件。

你可能感兴趣的:(每天十分钟,十二天入门Python(十一))