-Python-异常处理

Python-异常处理

chenyang 59天前 87

Python中异常继承树

4964e9287585f9663f79e7b498454365.png

异常处理语句格式

  • 格式一:
a = 10
b = 0
try:
    print("可能发生异常的代码")
    result = a / b
except:
    print("发生异常时执行的代码")
finally:
    print("无论是否发生异常都要执行的代码")
  • 格式二:
    如果知道具体的异常可以在except后面接具体的异常型。
    类型的具体名称可以查阅手册或者构造异常从输出中获取。
     
71a4a6192f07cc5deff57b6b2e6b6d30.png
a = 10
b = 0
try:
    print("可能发生异常的代码")
    result = a / b
except ZeroDivisionError:
    print("除数不能为0")
# 由于try中没有语法异常所以没有捕获到哦!
except SyntaxError:
    print("语法错误的异常")
finally:
    print("无论是否发生异常都要执行的代码")
  • 格式三:

如果不知道确定的异常类型,可以使用Exception类型,他是所有其他确定异常的父类,所以能够捕获所有异常,异常的内容用一个err对象接收。但是必须把它放在其他确定异常类型的最后面,否则确定异常将无法捕获到。

a = 10
b = 0

try:
    print("可能发生异常的代码")
    result = a / b
# 能确定的异常类型放前面
except SyntaxError:
    print("语法错误的异常")
# 一定要放在最后面!!!
except Exception as err:
    print(err)
finally:
    print("无论是否发生异常都要执行的代码")
  • 格式4:
a = 10
b = 10

try:
    print("可能发生异常的代码")
    result = a / b
except SyntaxError:
    print("语法错误的异常")
except Exception as err:
    print(err)
# 没有异常时执行此中代码
else:
    print("try中的代码没有异常执行这里的内容")
finally:
    print("无论是否发生异常都要执行的代码")

主动抛出异常

使用raise关键字,后面加异常对象,可以自定义一个新的异常类型,也可以使用Exception类型。

def chu(a, b):
    if b == 0:
        raise Exception("除数不能是0")
    return a / b

try:
    print(chu(12,0))

except Exception as err:
    print(err)
最新回复 (0)
返回
发新帖
0