一、 try-except语句
- 首先,执行try子句
- 如果没有异常发生,忽略except子句,try子句执行后结束。
- 如果在执行try子句的过程中发生异常,那么try子句余下的部分将会被忽略。 如果异常的类型和except之后的名称相符,那么对应的except子句将会被执行,最后执行try语句之后的代码。
- 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层try
"""
try:
检测范围
except Except[as reason]:
出现异常后的处理代码
"""
例1:
try:
int("abc")
s = 1+'1'
f = open('test.txt')
print(f.read())
f.close()
except OSError as error:
print('打开文件出错\n原因是:'+str(error))
except TypeError as error:
print('类型出错\n原因是:'+str(error))
except ValueError as error:
print('数值出错\n原因是:'+str(error))
结果:数值出错
原因是:invalid literal for int() with base 10: ‘abc’
例2:
dict1 = {'a':1,'b':2,'v':22}
try:
x = dict1['y']
except LookupError:
print('查询错误')
except KeyError:
print('健错误')
else:
print(x)
结果:查询错误
例3:
try:
s = 1+'1'
int("abc")
f = open('test.txt')
print(f.read())
f.close()
except (OSError,TypeError,ValueError) as error:
print('出错了!\n原因是:'+str(error))
二、try—except-else语句
# 如果在try子句执行时没有发生异常,python将执行else语句后的语句
"""
try:
检测范围
except:
出现异常后的处理代码
else:
如果没有异常执行这块代码
"""
例1:
# 注意:else的存在必须以except语句的存在为前提,在没有except语句的try语句中使用else语句,会引发语句错误。
try:
fh = open("testfile","w")
fh.write("这是一个测试文件,用于测试异常!")
except IOError:
print("Error:没有找到文件或读取文件失败")
else:
print("内容写入文件成功")
fh.close()
输出结果:内容写入文件成功
三、raise语句
python使用raise语句抛出一个指定的异常
例1:
try:
raise NameError('HiThere')
except NameError:
print("An exception flew by!")
练习题:
题目描述:随机产生0-100之间的随机数字,让用户猜,如果用户猜的数字比这个数字大,则提示太大,否则太小,当用户正好猜中的时候,会提示,“恭喜你,你猜到的这个数字是……”。当用户欸此猜测之前程序会输出用户是第几次猜测,如果用户输入的不是一个数字,程序会告诉用户“输入无效”。
import random
num = random.randint(0,100)
try:
temp=input('第 次猜测,请输入一个整型数字:')
guess = int(temp)
isinstance(guess,int)
if guess > num:
print("大了,大了")
else:
if guess < num:
print("太小")
else:
print("恭喜你猜到了了这个数是:num")
except:
print("输入无效")
但还有错误,之后修改。
本文介绍了Python中的异常处理,包括try-except语句用于捕获并处理异常,try-except-else语句在无异常时执行额外操作,以及raise语句主动抛出异常。通过实例展示了如何在代码中应用这些机制,例如在处理用户输入和文件操作时确保程序的健壮性。

1607

被折叠的 条评论
为什么被折叠?



