인터넷 연결이 필요한 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)
그래서 내가 (일부 링크) 위의 링크를 확인하려면, 그리고 실패하면, 나는 메시지 상자를 표시 한 다음 I 종료합니다. 내가 (OFF 인터넷으로)이를 실행하면 앱이 메시지를 표시 않으며, 클릭 한 후 확인을, 또 다른 역 추적 상자 인쇄
SystemExit:0
그것은 실제로 종료하지 열립니다. 자기를 사용해 보았습니다. 닫습니다. 그건 너무 효과가 없습니다. 앱을 실행하자마자 체크 연결 기능을 만드는 것에 대한 생각.
def checkConnection():
try:
test = urllib.urlopen("http://www.google.com")
except:
sys.exit(0)
이이 같은 일을했다
def InitUI(self):
checkConnection()
.........
.........
에 그것을 배치. 그래서 인쇄를 피할 수있는 방법이 있습니까 및 실제로 종료합니까?
os._exit
그러나 나는 단지 sys.exit
도 효과가 있어야한다고 생각했습니다. 그래서 어떤 힌트 녀석들?
일반적으로 'except : except'를 사용하는 것은 나쁜 습관으로 간주됩니다. 예외를 제외하고는 예외를 제외하고 예외 클래스 나 예외 클래스를 예외로 사용해야합니다. 예외 코드는 예외입니다. –