有些语法错误是捕获不到异常的
try:
# num = int(input('请输入数字:'))
num = 3
if num % 2 == 0 and num % 3 == 0:
print('2,3的倍数')
# 待捕获处
elif num %2 = 0:
print('2的倍数')
elif num % 3 == 0:
print('3的倍数')
else:
print('其他')
except SyntaxError as e:
print("错误信息:", e)
结果:
这样是无法捕获到第7行中的那个赋值符号的, 因为这是在代码运行之前就存在的异常, 是不能通过普通的代码来捕获的
应该使用 eval()
try:
# num = int(input('请输入数字:'))
num = 3
if num % 2 == 0 and num % 3 == 0:
print('2,3的倍数')
# 待捕获处
elif eval("num %2 = 0"):
print('2的倍数')
elif num % 3 == 0:
print('3的倍数')
else:
print('其他')
except SyntaxError as e:
print("错误信息:", e)
结果: