python-错误与异常

 语法错误

在这里插入图片描述

 

逻辑错误

系统错误

常见的异常类型

  • 除零异常:
    • 报错结果:ZeroDivisionError: division by zero
    • 如何避免:
  • def div(a,b):
        return a/b
    
    try:
        print(div(1/0))
    except:
        print('这里有一个异常')
    #这样的好处是可以避免终端打印错误
  • 名称异常
    • 报错现象:
    • nums = [1,2,3,4]
      for i in nams:
      	print(f'这是nums数组中的元素{i}')
    •  
  • 索引异常
    • 报错代码:
nums = [1,2,3,4]
for i in nums:
	print(f'这是nums数组中的元素{nums[i]}')#超出了nums[]列表的上限

报错现象:
Traceback (most recent call last):
  File "/Users/cangqiongqiyuyunxi/PycharmProjects/automatic_test/inherication.py", line 64, in <module>
    print(f'这是nums数组中的元素{nums[i]}')
IndexError: list index out of range
  • 键异常
    • 报错代码:
    • dic1 = {'name':'shaoqiran'}
      print(dic1['age'])
      
      报错打印:KeyError: 'age'
      

 如何处理异常:

​​​​​​​

# “except exception as e" 是 Python 中的异常处理语句,用于捕获特定类型的异常并将其赋值给一个变量。例如:

try:
    # 可能会抛出异常的代码
except Exception as e:
    # 捕获特定类型的异常,并将其赋值给变量 e
在这个例子中,如果 try 块中的代码抛出了任何类型的异常,except 块就会捕获它,并将其赋值给变量 e。这样我们就可以在 except 块中使用这个变量来处理异常。

 实例:

def div(a, b):
    return a / b


try:
    div(1, 1)
    li1 = [1, 2, 3, 4]
    print(f'第五个元素是{li1[4]}')
except Exception as e:
    print(e)
    print('这里有一个异常')

运行结果是:
list index out of range
这里有一个异常

自定义异常:

class MyException(Exception):
    def __init__(self,msg):
        print(f'这是一个异常{msg}')
def setint(num):
    if num <= 0 or num >200:
        raise MyException(f'值错误{num}')
    else:
        print(f'设置的年龄{num}')
setint(-10)


运行结果是:这是一个异常值错误-10
Traceback (most recent call last):
  File "/Users/cangqiongqiyuyunxi/PycharmProjects/automatic_test/inherication.py", line 85, in <module>
    setint(-10)
  File "/Users/cangqiongqiyuyunxi/PycharmProjects/automatic_test/inherication.py", line 82, in setint
    raise MyException(f'值错误{num}')
__main__.MyException: 值错误-10

    
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值