异常机制的本质:
程序运行过程中出现的非正常现象,例如用户输入错误,除数为0,需要处理的文件不存在等。所谓的异常处理,就是程序出现问题时,依然可以正确执行剩余的程序,而不会因为异常而终止程序运行
处理过程:抛出异常–>捕获异常
解决异常关键在于定位!!!
基本语法以及一些知识:
- try…except
- try…多个except
- try…except…else
- try…except…finally
- return 语句和异常处理:
- 常见的异常有:
SyntaxError:语法错误
NameError:尝试访问一个没有声明的变量
ZeroDivisionError:除数为0的错误
ValueError:数值错误
TypeError:类型错误
AttributeError:访问对象的属性不存在
IndexError:索引越界异常
| KeyError:字典的关键字不存在 - 常见异常汇总:
- with上下文管理
- trackback模块:
代码部分:
import traceback
try:
print("step1")
num = 1/0
except:
with open("f:/a.log", "a") as f:
traceback.print_exc(file=f)
10.自定义异常类:
#coding:gbk
class AgeError(Exception):
def __init__(self, errorInfo):
Exception.__init__(self)
self.errorInfo = errorInfo
def __str__(self):
return str(self.errorInfo)+", 年龄错误,应该是1-150之间"
if __name__ == "__main__":
age = int(input("请输入一个年龄:"))
if age < 1 or age > 150:
raise AgeError(age)
else:
print("正常的年龄:", age)