【Python】基础学习(五)错误与异常

语法错误与定位

异常捕获、异常处理

自定义异常

错误

  语法错误:编写代码进行的报错【SyntaxError: invalid syntax】

    例:【Python】基础学习(五)错误与异常【Python】基础学习(五)错误与异常

  逻辑错误:语法没有问题

  系统错误:操作系统引起的

异常

  程序执行过程中出险的未知错误

  语法和逻辑是正常的

  程序业务逻辑不完善引起的成语漏洞

  常见的异常类型:除零类型【ZeroDivisionError: division by zero】,名称异常【NameError: name 'numw' is not defined】,索引异常【列表】【IndexError: list index out of range】,键异常【KeyError: 'yuyu'】,值异常【ValueError: invalid literal for int() with base 10: '12eee'】,属性异常等等

异常与错误的区别

  异常可以被捕获和处理

  错误一般是编码错误,逻辑错误,系统错误

异常/错误处理流程

  检测到错误->引发异常->捕获异常操作

  如果是拼写、配置等引起的错误,根据错误信息排查错误出现的位置进行解决

  如果是程序设计不完善引起的漏洞、根据漏洞的情况进行设计处理漏洞的逻辑

处理异常:

2-----------------------------------------------------------------------------------

try:
print(33/0)
except:
print("this is 异常")

【Python】基础学习(五)错误与异常

1-----------------------------------------------------------------------------------
try:
print(33/0)
except ZeroDivisionError as e:
print(e)
print("this is 异常") --->

【Python】基础学习(五)错误与异常

 3-----------------------------------------------------------------------------------

 try:

    list = [1,3,4,5]
print(list[8])
print(33 / 0)
except Exception as e:
print(e)

 4-----------------------------------------------------------------------------------

try:
list = [1,3,4,5]
print(list[8])
print(33 / 0)
except Exception as e:
print(e)
finally:
print(888888)

 无论是否有异常,finally都会执行。

5----------------------------------------------------------------------------------------------

try:
list = [1,3,4,5]
print(list[8])
print(33 / 0)
except Exception as e:
print("有异常的时候执行")
else:
print("没有异常的时候执行")
finally:
print(888888)

 6-----------------------------------------------------------------------------------------------

 def demo(num):

    if num > 10:
raise ValueError(f"错误值:{num}")
else:
print(num)
demo(19)

 【Python】基础学习(五)错误与异常

 

 【Python】基础学习(五)错误与异常

 

 7-----------------------------------------------------------------------------------------------

自定义异常

class MyException(Exception):
def __init__(self,msg):
print(f"这是一个异常:{msg}")

def demo(num):
if num > 10:
raise MyException(f"错误值:{num}")
else:
print(num)
demo(19)

【Python】基础学习(五)错误与异常

 

上一篇:Python迭代器及常用内置函数


下一篇:python基础之错误和异常的处理