我正在製作一個需要連接互聯網的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也。那也行不通。 想到在運行應用程序後立即執行checkconnection功能。
def checkConnection():
try:
test = urllib.urlopen("http://www.google.com")
except:
sys.exit(0)
在
def InitUI(self):
checkConnection()
.........
.........
把它放在這也做了同樣的事情。那麼有沒有辦法避免印刷 和實際退出?
os._exit
工作,但我只是認爲sys.exit
應該也工作。 那麼任何提示球員?
通常認爲不好的做法是使用一個空的'except:'而不是你應該除了一個特定的異常或類的異常,'除了IOError:' – 2012-08-10 19:44:01