可以让sys.exit()退出Bottle框架吗

5 投票
3 回答
1138 浏览
提问于 2025-04-16 03:50

我原本希望在代码里加上 'sys.exit(1)',然后在后面捕捉这个错误,这样就能正常退出了。

xml_open()
try:
  run(reloader=True, host='localhost', port=8080)
except SystemExit:
  xml_save()
  print "Exited ..."

有没有其他方法可以让这些 Python 微框架在处理函数里退出呢?

3 个回答

0

根据我有限的经验,当关闭重载器时,sys.exit()应该是有效的。否则,重载器会在执行sys.exit()时重新加载代码,这样你的应用程序就会继续运行。当然,我可能对sys.exit()为什么不工作的原因理解错了,但对我来说,当我关闭重载器时,它是有效的。

1

如果你还在遇到这个问题,可以看看我的回答,里面有一个简单的方法来停止Bottle框架,点击这里查看。

1

如果没有处理这个问题,那就检查一下是否真的执行了 sys.exist(1) 这个语句,因为可能会发生其他的异常情况,而这些异常没有被处理。你可以试试这个方法……

xml_open()
try:
  run(reloader=True, host='localhost', port=8080)
except SystemExit:
  xml_save()
  print "Exited ..."
except Exception, e:
  print "ohhh no.......",str(e)
  import pdb
  pdb.post_mortem()
  sys.exit(-1)

撰写回答