📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
✅ 一、基本语法结构
try:
# 可能会出错的代码块
except 错误类型1:
# 处理错误类型1的代码
except 错误类型2 as e:
# 处理错误类型2的代码,并将错误信息保存到变量 e 中
except:
# 捕获所有未被前面 except 捕获的异常(慎用)
else:
# 如果 try 中没有发生异常,则执行这个块
finally:
# 不论是否发生异常,都会执行这个块(常用于资源清理)
✅ 二、详细讲解
1. try 块
包含你认为可能会引发异常的代码。
程序会尝试执行这段代码,如果出现异常就会跳转到对应的 except 块中。
2. except 块
用来捕获并处理特定类型的异常。
可以有多个 except 块,分别处理不同类型的异常。
使用 as 关键字可以将异常对象保存下来,方便查看错误信息。
示例:捕获具体异常
try:
result = 10 / 0
except ZeroDivisionError:
print("不能除以零!")
示例:捕获多个异常类型
try:
x = int(input("请输入一个数字: "))
y = 10 / x
except ValueError:
print("输入不是有效的整数!")
except ZeroDivisionError:
print("不能除以零!")
示例:捕获所有异常(不推荐滥用)
try:
something_risky()
except:
print("发生了未知错误!")
⚠️ 注意:尽量不要使用空的 except:,这样会屏蔽所有的错误,包括程序员预期之外的异常,不利于调试。
3. else 块(可选)
如果 try 块中 没有发生任何异常,则会执行 else 块中的代码。
通常用于放置那些只有在没有异常时才应该执行的代码。
示例:
try:
num = int(input("请输入一个整数: "))
except ValueError:
print("输入不是整数!")
else:
print(f"你输入的数字是 {num}")
4. finally 块(可选)
不管有没有异常,finally 块总会被执行。
通常用于释放资源,如关闭文件、网络连接等。
示例:
try:
file = open("test.txt", "r")
content = file.read()
except FileNotFoundError:
print("文件不存在!")
finally:
print("不管有没有错误,我都会执行!")
# 即使上面有return或break,也一定会执行
✅ 三、完整示例
def divide(a, b):
try:
result = a / b
except ZeroDivisionError:
print("错误:除数不能为零!")
except TypeError as e:
print(f"类型错误:{e}")
else:
print(f"结果是:{result}")
finally:
print("无论成功与否,都会执行 finally 块")
# 测试调用
divide(10, 2) # 正常情况
divide(10, 0) # ZeroDivisionError
divide(10, 'a') # TypeError
✅ 四、抛出异常(raise)
你可以主动抛出异常,使用 raise 关键字。
def check_age(age):
if age < 0:
raise ValueError("年龄不能小于0")
print("年龄合法")
try:
check_age(-5)
except ValueError as e:
print(e)
✅ 五、自定义异常类(进阶)
你可以继承 Exception 类来创建自己的异常类型:
class InvalidEmailError(Exception):
def __init__(self, message="邮箱格式不正确"):
self.message = message
super().__init__(self.message)
def validate_email(email):
if "@" not in email:
raise InvalidEmailError()
try:
validate_email("invalid-email")
except InvalidEmailError as e:
print(e)
✅ 六、总结表格
✅ 七、最佳实践建议
尽量只捕获你需要的异常类型,避免“裸露”的 except:。
使用 finally 来释放资源(如文件、数据库连接等)。
使用 else 避免不必要的异常嵌套。
合理使用 raise 抛出自定义异常,提高程序可读性和可维护性。
不要忽略异常,至少打印日志或记录错误信息。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】