Python基础 -- Task08. 异常处理

当程序运行过程中出现错误时,python解释器就会指出当前程序流无法继续执行下去,会自动引发异常。异常处理就是在程序出错之后,为了排除错误而在正常控制流之外采取的行为。
1. Python标准异常总结
在这里插入图片描述
2.try - except 语句
语法格式:

try:
    <被检测的程序代码>
expect<异常类型>:
    <异常处理的程序代码>
# author:answer   time:2019/10/20
#异常处理
try:
    x=int(input("请输入数据1:"))
    y=int(input("请输入数据2:"))
    z=x/y
    s="两次输入的数据不相等"
    assert x==y,s
except AssertionError:
    print(s)
else:
    print("两次输入的数据相等")

try 语句按照如下方式工作:

  • 首先,执行try子句(在关键字try和关键字except之间的语句)

  • 如果没有异常发生,忽略except子句,try子句执行后结束。

  • 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。最后执行try语句之后的代码。

  • 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。

  • 一个try语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

try:
    x=int(input('请输入数据1:'))
    y=int(input('请输入数据2:'))
    z=x/y
except ValueError:
    print('应全部输入数据值')
except ZeroDivisionError:
    print("除数不能为零")
except NameError:
    print('变量不存在')
else:
    print("最终结果为:",z)
  • 一个 except 子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。
try:
    int("abc")
    s = 1 + '1'
    f = open('test.txt')
    print(f.read())
    f.close()
except (OSError, TypeError, ValueError) as error:
    print('出错了!\n原因是:' + str(error))

3. try - except - else 语句
语法格式:

try:
    <被检测的程序代码>
expect<异常类型>:
    <异常处理的程序代码>
else:
    <正常处理的程序代码>
# author:answer   time:2019/10/30
try:
    x=int(input('请输入数据1:'))
    y=int(input('请输入数据2:'))
    z=x/y
except ValueError:
    print('应全部输入数据值')
except ZeroDivisionError:
    print("除数不能为零")
except NameError:
    print('变量不存在')
else:
    print("最终结果为:",z)

4. try - except - finally 语句
不管try子句里面有没有发生异常,finally子句都会执行。
如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。
语法格式:

try:
    <被检测的程序代码>
expect<异常类型>:
    <异常处理的程序代码>
finally:
    <正常处理的程序代码>
# author:answer   time:2019/10/30
try:
    x=int(input('请输入数据1:'))
    y=int(input('请输入数据2:'))
    z=x/y
except ValueError:
    print('应全部输入数据值')
except ZeroDivisionError:
    print("除数不能为零")
except NameError:
    print('变量不存在')
else:
    print("最终结果为:",z)
finally:
    print("END")

5. raise语句

Python 使用raise语句抛出一个指定的异常。

# author:answer   time:2019/10/30
try:
    raise  NameError("命名出错")
except NameError:
    print('变量不存在')
#变量不存在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值