Python学习笔记-异常及处理

异常

语法错误

在集成开发环境中,如果出现语法错误则IDE会立即报告。

运行时错误

程序运行起来之后才体现出来的错误

异常处理

基本方法

try:
    可能出现错误的语句段
except [指定的异常类型]:  # 指定一种异常类型
    出现该类异常以后的处理
except Exception as e:  # 放在最后,兜底接收其他错误类型
    print(e) # 输出错误信息
    默认的错误处理
else:
    try下代码块执行结束,没有遇到异常后,执行的代码块
finally:
    无论有没有异常都会执行的代码块

Exception 是所有异常的父类,通常放在最后用来接收未知的错误类型

若要获取错误类型的报错信息,需要使用:

except 异常类型 as 名字:
    print(名字)

异常处理中return执行顺序

无finally

  • try中有return: 立刻返回,结束程序段的执行

  • else中有return: 立刻返回,结束程序段的执行

有finally

  • try中有return而finally中无: 暂缓return,待finally执行完毕后返回
  • else中有return而finally中无: 暂缓return,待finally执行完毕后返回
  • finally中有return:无论try或else中是否有return,均以finally中返回的为准

异常传递

如果调用关系有多层,那么内层如果出错,错误就会被层层抛出,直到在某处被捕获或处理。

如果直到最终调用处都未被捕获或处理,那么就会被抛出

自定义异常

当系统给定的异常不能满足需求时,可以使用自定义异常来进行补充

# 自定义一个异常
class UserNameError(Exception):
   def __init__(self,*args,**kwargs):
       pass
# 在方法中使用自定义异常
def setUserName():
   username = input('请输入用户名:')
   if len(username)<6 or username[0].isdigit():
       raise UserNameError('用户名格式错误')   # 用raise抛出异常
   else:
       print('输入成功')
try:
   setUserName()
except Exception as e:  # 接收异常
   print(e)

你可能感兴趣的:(Python学习笔记)