我正在制作一个需要互联网连接的 wxpython 应用程序。所以,我需要检查连接是否存在,如果没有,则退出。所以我的代码看起来像这样。
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title,
size=(700,650))
self.InitUI()
self.Centre()
#*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.
#--------------------------------------------------------------------------------
favicon = wx.Icon(ICON_PATH, wx.BITMAP_TYPE_ICO)
wx.Frame.SetIcon(self, favicon)
self.Show()
def InitUI(self):
#checkConnection()
checkInstances()
panel = wx.Panel(self)
font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
font1 = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
font1.SetPointSize(10)
#Layout
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
st1 = wx.StaticText(panel, label='Select Slot :')
st1.SetFont(font1)
hbox1.Add(st1, flag=wx.ALL, border=8)
try:
handler = urllib.urlopen("http://%s/api/get-slots/?api_key=%s"%(BASE_DOMAIN, API_KEY))
except:
wx.MessageBox("Error communicating with the server.", 'WARNING',wx.OK |wx.ICON_INFORMATION)
handler = None
sys.exit(0)
所以我想检查上面的那个链接(一些链接),如果它失败了,我会显示一个消息框,然后我退出。当我运行此程序(关闭互联网)时,该应用程序确实显示消息,单击确定后,另一个回溯框打开并打印
SystemExit:0
它实际上并没有退出。尝试使用 self.Close 也。那也不行。想到我们一运行应用程序就创建一个检查连接功能。
def checkConnection():
try:
test = urllib.urlopen("http://www.google.com")
except:
sys.exit(0)
把它放在
def InitUI(self):
checkConnection()
.........
.........
这也做了同样的事情。那么有什么方法可以避免打印并实际退出?
os._exit
有效,但我只是认为这也sys.exit
应该有效。所以有什么提示吗?