Python函数中使用异常处理技巧
发布时间:2023-06-01 20:44:03
Python是一种流行的编程语言,拥有强大的异常处理机制。Python中的异常处理是指在程序执行过程中,如果出现了异常情况,就会抛出一个异常对象,并且程序会中止执行。异常处理技巧可以帮助开发者在处理程序错误和异常时更加优雅和高效。
本文将介绍Python函数中使用异常处理技巧。
1. try-except语句
try语句会尝试执行一些代码,如果出现异常,则会执行except语句。下面是一个示例:
def divide(x, y):
try:
result = x / y
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print("executing finally clause")
divide(1, 2)
divide(1, 0)
输出结果为:
result is 0.5 executing finally clause division by zero! executing finally clause
2. raise语句
raise语句可以手动抛出异常。下面是一个示例:
def validate_age(age):
if age < 0 or age > 120:
raise ValueError("Invalid age")
print("Valid age")
try:
validate_age(-1)
except ValueError as e:
print("Caught exception: " + str(e))
输出结果为:
Caught exception: Invalid age
3. assert语句
assert语句可以用来检查程序中的某个条件是否为真,如果不是,就会抛出一个AssertionError异常。下面是一个示例:
def divide(x, y):
assert y != 0, "division by zero!"
result = x / y
print("result is", result)
divide(1, 2)
divide(1, 0)
输出结果为:
result is 0.5
Traceback (most recent call last):
File "test.py", line 8, in <module>
divide(1, 0)
File "test.py", line 2, in divide
assert y != 0, "division by zero!"
AssertionError: division by zero!
4. try-except-else语句
try-except-else语句和try-except语句类似,区别在于有else语句。else语句会在try语句执行完毕后执行,如果没有发生异常,则执行else语句。
def divide(x, y):
try:
result = x / y
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print("executing finally clause")
divide(1, 2)
divide(1, 0)
输出结果为:
result is 0.5 executing finally clause division by zero! executing finally clause
5. try-except-finally语句
try-except-finally语句是一个结合了try、except和finally的语句。finally语句会在try语句执行完毕后无论如何都会执行,即使在try语句执行期间发生了异常。
def open_file(file_path):
try:
file = open(file_path, 'r')
print(file.readlines())
except FileNotFoundError:
print("File not found")
finally:
file.close()
print("File closed")
open_file("test.txt")
输出结果为:
['hello world ', 'test '] File closed
本文介绍了Python函数中使用异常处理技巧,包括try-except语句、raise语句、assert语句、try-except-else语句和try-except-finally语句。异常处理技巧可以让程序在出现错误和异常时更加健壮和优雅。
