1、抛出异常__使用raise语句

格式:

raise Exception(‘自定义的出错信息’)

实例:

def print5(number):
    if number != 5:
        raise Exception('请输入数字5!')
try:
     print5(6)
except Exception as err:
    print('报错信息为:'+str(err))

结果如下:

python raise error 使用 python raise from_错误信息

2、通过反向跟踪

(1)反向跟踪的含义:

python遇到错误,就会生成一些错误信息,称为“反向跟踪”。

“反向跟踪”包含了出错信息,导致错误的代码行号,以及导致该错误的函数调用的序列(调用栈)。

(2)实例
def print5(number):
    if number != 5:
        raise Exception('请输入数字5!')
print5(6)
结果如下:

python raise error 使用 python raise from_python_02

(3)将反向跟踪信息报错至文本文件___traceback模块
>>> import traceback
>>> try:
	raise Exception('报错信息')
except:
	file=open('D:\\python\\error.txt','w')
	file.write(traceback.format_exc())
	file.close()
	print('错误信息已写入文件路径:D:\python\error.txt')

__________________________运行结果____________________________	
93            #93表示写入文件字符的个数
错误信息已写入文件路径:D:\python\error.txt
>>>

文件结果:

python raise error 使用 python raise from_错误信息_03

3、断言 :assert

含义:

assert(断言)用于判断一个表达式,在表达式条件为false的时候触发异常。断言可以在不满足程序运行的情况下直接返回错误,而不必等待程序运行出现崩溃的情况。

使用断言举例:
>>> assert 1==3 ,'这里正确的格式应该是1==1'
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    assert 1==3 ,'这里正确的格式应该是1==1'
AssertionError: 这里正确的格式应该是1==1
>>>
禁用断言:

禁用python 程序中的assert语句可以稍微提高性能;

从终端窗口运行Python时,在.py文件之前加上“-O” 即可跳过断言检查

举例如下:

assert.py代码:

a =10
b=11
assert a==b ,'a和b都应该是10'
print(a)
print(b)

运行截图:

python raise error 使用 python raise from_错误信息_04

4、日志 logging

使用日志的好处:

可以理解程序中发生的事,以及事情发生的顺序。

日志消息可以描述程序何时到达日志函数的调用,并列出所指定变量当时的值。

另一方面:缺失日志信息表明有一部分代码被跳过,从未执行。

1)日志的级别

级别

日志函数

描述

DEBUG

logging.debug()

最低级别。用于小细节。通常只有在诊断问题时,你才会关心这些消息。

INFO

logging.info()

用于记录程序中一般事件的信息,或确认一切工作正常

WARNING

logging.warning()

用于表示可能的问题,它不会阻止册程序工作,但将来可能会。

ERROR

logging.error()

用于记录错误,它导致程序做某事失败

CRITICAL

logging.critical()

最高级别,用于表示致命错误,它导致或将要导致程序完全停止工作。

设置日志级别使用:logging.getLogger().setLevel(参数);

如果参数为:logging.DEBUG,则可以显示所有的日志级别消息(DEBUG是最低级别)python3 默认级别为logging.WARNING,设置日志级别之后,低于此日志级别的日志消息不显示。

举例如下:

>>> import logging
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
WARNING:root:warning
>>> logging.error('error')
ERROR:root:error
>>> logging.critical('critical')
CRITICAL:root:critical
>>> #设置日志级别
>>> logging.getLogger().setLevel(logging.DEBUG)
>>> logging.debug('debug')
DEBUG:root:debug
>>>
2)禁用日志 :loggin.disable(参数)
>>> import logging
>>> #设置日志级别
>>>logging.getLogger().setLevel(logging.DEBUG)
>>> logging.debug('debug')
DEBUG:root:debug
>>> #禁用DEBUG及其以下低级别的日志消息
>>> logging.disable(logging.DEBUG)
>>> logging.debug('1234')
>>> logging.info('123')
INFO:root:123
>>> #禁用ERROR及其以下低级别的日志消息
>>> logging.disable(logging.ERROR)
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')
CRITICAL:root:critical
>>> #禁用所有日志消息
>>> logging.disable(logging.CRITICAL)
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')
>>>
3)将日志记录到文件 :logging.basicConfig(参数,[参数],[参数])
①:默认日志级别
>>> import logging
>>> logging.basicConfig(filename='D:\\python\\mylog.txt')
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')

python raise error 使用 python raise from_写入文件_05

②:设置记录到文件的目录级别

>>> import logging
>>> logging.basicConfig(filename='D:\\python\\mylog1.txt',level=logging.DEBUG)
>>> logging.debug('debug')
>>> logging.info('info')
>>> logging.warning('warning')
>>> logging.error('error')
>>> logging.critical('critical')
>>>

python raise error 使用 python raise from_错误信息_06