有些语法错误是捕获不到异常的

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)

结果:

并不是所有的异常都可以捕获到之 SyntaxError: invalid syntax_错误信息

 

这样是无法捕获到第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)

结果:

并不是所有的异常都可以捕获到之 SyntaxError: invalid syntax_异常_02