try 函数的基本语法
python 中的 try
语句用于捕获和处理异常。
其基本语法结构如下:
try: # 尝试执行的代码块 except exceptiontype: # 发生异常时执行的代码块 else: # 未发生异常时执行的代码块 finally: # 无论是否发生异常都会执行的代码块
捕获特定异常
可以指定捕获特定类型的异常,例如 valueerror
或 indexerror
,以便针对不同的异常采取不同的处理措施。
try: num = int("abc") except valueerror: print("输入的不是有效数字")
捕获多个异常
在一个 try
块中可以捕获多种异常,并通过多个 except
子句分别处理。
try: result = 10 / 0 num = int("abc") except zerodivisionerror: print("除数不能为零") except valueerror: print("输入的不是有效数字")
使用 else 子句
else
子句中的代码会在 try
块未引发任何异常时执行。
try: num = int("123") except valueerror: print("输入的不是有效数字") else: print(f"转换后的数字是: {num}")
使用 finally 子句
finally
子句中的代码无论是否发生异常都会执行,常用于资源清理操作,如关闭文件或数据库连接。
try: file = open("example.txt", "r") content = file.read() except filenotfounderror: print("文件未找到") finally: file.close() print("文件已关闭")
捕获所有异常
如果不确定具体会引发哪种异常,可以使用通用的 exception
类捕获所有异常。
try: result = 10 / 0 except exception as e: print(f"发生异常: {e}")
自定义异常处理
可以通过继承 exception
类创建自定义异常,并在 try
块中主动抛出异常(raise
)。
class customerror(exception): pass try: raise customerror("这是一个自定义异常") except customerror as e: print(f"捕获到自定义异常: {e}")
嵌套 try 块
try
块可以嵌套使用,内层 try
块可以处理更具体的异常,外层 try
块处理更通用的异常。
try: try: num = int("abc") except valueerror: print("内层捕获到 valueerror") result = 10 / 0 except zerodivisionerror: print("外层捕获到 zerodivisionerror")
结合 with 语句
try
块常与 with
语句结合使用,确保资源在使用后自动释放(如文件操作)。
try: with open("example.txt", "r") as file: content = file.read() except filenotfounderror: print("文件未找到")
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论