import sys;
def exception_operation():
while True:
try:
x = int(input("input enter a number:"))
break
except ValueError:
print("Oops! That was no valid number. Try again ")
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except OSError as err:
print("OS error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
except:
"""
最后一个 except 子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。
"""
print("Unexpected error:", sys.exc_info()[0])
"""
使用raise可以把异常再次抛出
"""
raise
def divide(x, y):
try:
result = x / y
except ZeroDivisionError:
print("division by zero!")
"""
try except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句
之后。这个子句将在 try 子句没有发生任何异常的时候执行。
"""
else:
print("result is", result)
finally:
"""
如果一个异常在 try 子句里(或者在 except 和 else 子句里)被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行后再次被抛出
"""
print("executing finally clause")
if __name__ == '__main__':
exception_operation()
divide(2, 3)
"""
关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行他的清理方法
"""
with open("myfile.txt") as f:
for line in f:
print(line, end="")
Python3——错误和异常
最新推荐文章于 2022-07-03 23:09:55 发布