Python 错误和异常

本文介绍了Python编程中常见的错误和异常,包括语法错误、异常处理语句的使用,如try-except-finally结构,并通过实例说明如何捕获和处理异常。此外,详细讲解了raise语句的语法和应用,如何主动抛出异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 错误和异常

Python错误包括:语法错误和异常

一、常见异常

异常描述
NameError尝试访问一个没有声明的变量引发的错误
IndexError索引超出序列范围引发的错误
IndentationError缩进错误
ValueError值错误
KeyError请求一个不存在的字典关键字引发的错误
IOError输入输出错误
ImportError当import语句无法找到模块或from无法在模块中找到相应的名称
AttributeError尝试访问未知的对象属性引发错误
TypeError类型不合适引发的错误
MemoryError内存不足
ZeroDivisionError除数为0引发的错误

二、异常处理语句

(一)异常处理语句语法
try:
	正常代码(可能产生异常的语句块)
except (ExceptionName1,ExceptionName2) as alias:
	当产生异常时要执行的语句块
else:
   当没有发生异常的要执行语句块
finally:
	不管理异常是否发生都要执行语句块
(二)例子

1、例1

import sys 
try:
    f = open('myfile.txt')
    s = f.readline()
    i = int(s.strip())
except OSError as err: #发生OSError异常处理语句
    print("OS error: {0}".format(err))
except ValueError: #发生ValueError异常处理语句
    print("Could not convert data to an integer.")
except:   #发生其他类型异常处理语句
    print("Unexpected error:", sys.exc_info()[0])
    raise

例2:

try:
    runf()
except AssertionError as error:
    print(error)
else:
    try:
        with open('file.log') as file:
            read_data = file.read()
    except FileNotFoundError as fnf_error:
        print(fnf_error)
finally:
    print('无论异常是否发生都会执行。')

三、抛出异常raise语句

(一)raise语句语法
raise [ExceptionName [(reason)]]

1、用于指定抛出异常名称以及异常信息的相关描述,如果省略,只是想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。
2、(reason)抛出异常但不附带任何信息

(二)例子
a=int(input())
if a>5:
    print(a)
else:
    raise ValueError("输入范围超出")

Traceback (most recent call last):
  File "C:/lx01032.py", line 5, in <module>
    raise ValueError("输入范围超出")
ValueError: 输入范围超出
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值