Skip to main content
 首页 » 编程设计

Python:为什么即使在退出后也会调用except

2025年05月04日9mfrbuaa

请检查下面的代码,

import sys 
try: 
    seq=eval(raw_input("Enter seq number: ")) 
    if seq <= 0 or seq >= 9999: 
       print "Sequence number not in range [0001-9999]" 
       sys.exit(1) 
except: 
      print "!!! Sequence number not in range [0001-9999]" 
      sys.exit(1) 

我给 eval raw_input 函数一个字符串。

$> python test.py 
Enter seq number: "12" 
 
 
Sequence number not in range [0001-9999] 
!!! Sequence number not in range [0001-9999] 

为什么在收到 exit 调用后还不退出?

请您参考如下方法:

sys.exit 只是引发一个异常 (SystemExit),然后被捕获。作为演示:

import sys 
import traceback 
 
try: 
    sys.exit(1) 
except: 
    print "This threw the following exception:" 
    traceback.print_exc() 
# This threw the following exception: 
# Traceback (most recent call last): 
#   File "test.py", line 5, in <module> 
#     sys.exit(1) 
# SystemExit: 1