一、异常
Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:
异常产生的时机:系统产生如果产生异常,程序中止:程序不健壮
给程序添加异常,使程序变得健壮
try:
语句体
1/0
except 异常类型:
处理语句
except 异常类型:
处理语句
或
try:
语句体
except (异常类型1,异常类型2):
处理语句
except Exception:
所有异常
或
try:
语句体
except 异常类型 as 名称:
print(名称)
或
try:
语句体
except 异常类型 as 名称:
print(名称)
else:
没有异常才会执行的代码
finally:一定会执行
try语句按照如下方式工作;
- 首先,执行try子句(在关键字try和关键字except之间的语句)
- 如果没有异常发生,忽略except子句,try子句执行后结束。
- 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。
- 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
处理程序将只针对对应的try子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组
二、自建异常
你可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类,可以直接继承,或者间接继承,例如:
class ageException(Exception): pass def age(): a=int(input('请输入:')) # if a not in range(1,101): if a<1 or a>100: raise ageException('年龄只能在1-100之间!') age() except ageException as ex: print(ex)
三、日志
日志是一种可以追踪某些软件运行时所发生事件的方法。软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。一个事件可以用一个可包含可选变量数据的消息来描述。此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别
日志需要导入模块
import logging
书写格式:
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='aaa.txt',level=logging.DEBUG,format=LOG_FORMAT)