错误:导致程序无法运行,同时也是程序本身不能处理的。 语法错误和语义错误 语法代码逻辑错误,或不合法的输入错误
(错误在运行之前就发生或存在的,导致程序无法运行,且不能被处理)
异常:指在运行环境正常的情况下遇到的运行时错误。 异常是非致命的,但也会导致程序的非正常终止
(在运行中遇到的问题,且程序在遇到异常处终止【异常么有被处理】,可以被处理)
print(123) # text 要赋值,异常 # print(text) # print(123) # 1 ? 2 语法错误
注: F8 打断点 F9 跳到下一个 F7 跳到当前类
-
如何人为处理异常
语法:
(1)
try:
正常执行的语句
except:
处理异常的语句(可以处理任何异常)
try: 1 / 0 print(111) 1 + "" except : print("分母不能为0")
(2)表明的是处理的异常:
try:
要执行的语句
except 异常类型:
处理异常语句
try: 1 / 0 print(111) 1 + "" except exception: print("分母不能为0")
Exception:是所有异常的父异常,意味着它可以接受所有的异常
(3)多个except
try:
要执行的语句
except ExceptionType1:
...
except ExceptionType2:
...
...
except ExceptionTypeN:
...
try: 1 / 0 print(111) 1 + "" except Exception: print("i can handle all exception") except ZeroDivisionError: print("分母不能为0") except TypeError: print("类型错误")
(4)
try:
要执行的语句
except ExceptionType1;
...
except ExceptionType2:
..
finally:(最后执行,遇没遇到异常都要执行)
...
print(80 * "*") try: print("打开数据库") 1 / 0 except ZeroDivisionError: print("分母不能为0") finally: print("关闭数据库")
(5)
try:
要执行的语句
except ExceptionType:
...
...
except ExceptionTypeN:
...
else:
没有遇到异常要执行的语句
finally:
最后要执行的语句
esle:如果没有异常,执行else中的语句
as:重命名=>
try: print("打开数据库") 1 / 0 except ZeroDivisionError: print("分母不能为0") else: print("Normal") finally: print("关闭数据库")