当前位置:   article > 正文

python 异常处理 try

python 异常处理 try

异常

我们常见的代码错误后 会出现此类异常

SyntaxError:语法错误

AttributeError:属性错误
IndexError:索引错误
TypeError:类型错误

NameError:变量名不存在错误

KeyError:映射中不存在的关键字(键)的错误

ValueError:值错误

异常本身就是一个类,所有的类都继承于BaseException类

SystemExit:退出异常
KeyboarInterrupt:键盘打断
GeneratorExit:生成器退出
Exception:普通异常 --------- 上面的常见异常都是Exception的子类

查看异常结构

print(help(NameError))

错误回溯

点击蓝色文字

print(a)

异常捕捉

语法结构
  1. try:
  2.     # 可能出现错误的代码
  3. except Exception(可以写其他异常类型,如果多个异常类型,需放元组里) as e:
  4.     # 捕捉到异常的处理方案
  5. else
  6.     # 没有异常时执行
  7. finally
  8.     # 不管是否出现异常都会执行
简单使用 
  1. try:
  2. print(a)
  3. except Exception as e:
  4. print(e)
  5. # name 'a' is not defined
  1. try:
  2. print(1)
  3. except Exception as e:
  4. print(e)
  5. else:
  6. print(2)
  7. finally:
  8. print(3)
  9. # 1
  10. # 2
  11. # 3
  1. try:
  2. print(a)
  3. except Exception as e:
  4. print(e)
  5. else:
  6. print(2)
  7. finally:
  8. print(3)
  9. # name 'a' is not defined
  10. # 3

raise

主动抛出异常

  1. try:
  2. num = input('请输入一个数值:')
  3. if not num.isdigit():
  4. raise ValueError('num必须为纯数字')
  5. print(f'数字是{num}')
  6. except Exception as e:
  7. print(e)
  8. # 如果输入 1234 那么就会输出 数字是1234
  9. # 如果输入 qwer 那么就会输出 num必须为纯数字
自定义异常 -- 小游戏
  1. def number():
  2. print('小游戏')
  3. print('请输入1~10的数字字母,如果长度正确,则游戏胜利,否则输了')
  4. a = input('请输入:')
  5. if len(a) == 7:
  6. print('游戏胜利')
  7. else:
  8. raise Exception('游戏失败')
  9. while True:
  10. try:
  11. number()
  12. break
  13. except Exception as e:
  14. print(e)

assert

断言,强制要求一个条件满足

assert 条件,  '抛出自定义异常'

  1. def user():
  2. assert 10 < 1, '错误,10是大于1的'
  3. print('123') # 只有上面满足,这行代码才会执行
  4. try:
  5. user()
  6. except Exception as e:
  7. print(e)
  8. # 错误,10是大于1的
  1. def func(passwd):
  2. assert 12 > len(passwd) > 6, '密码过长或过短'
  3. print('密码正常')
  4. try:
  5. a = input('请输入密码:')
  6. func(a)
  7. print(123) # 上面没通过,这一行也不会执行
  8. except Exception as e:
  9. print(e)
  10. # 输入 7-11位数才正常,否则抛出异常

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/627340
推荐阅读
相关标签
  

闽ICP备14008679号