Skip to content

Commit ff536b9

Browse files
committed
Add WebClient Exception Handle
1 parent 9164ebc commit ff536b9

File tree

3 files changed

+40
-6
lines changed

3 files changed

+40
-6
lines changed

QuickIPchange/Form1.Designer.vb

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

QuickIPchange/Form1.resx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,23 @@
126126
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
127127
<value>393, 17</value>
128128
</metadata>
129+
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
130+
<data name="ToolStripStatusLabel7.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
131+
<value>
132+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
133+
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA7CAAAOwgEVKEqAAAABjklE
134+
QVQ4T92QvUvDQBjGX8EPBBF0sqW9BOkQhFJBdHPS3U1wcSo6ORTaJLXKBVTQrc6WXGqshaKCIK5+dHBx
135+
aHHRzaWDVFERdYzvpddQW9s/wAce8nHP73nvDv6r6EU3qGYcNOseVOsTtGwZ3xfFagfFCv2gm5MIZ9FX
136+
oGdnQd8PQdKeB5U94HdKJJvldOGENZz2AhrDaTgxdSDBqu3zvG5NuOtxNiKgBqnWMoLXkMwpv6Bma+wc
137+
bWLJuCCFNHaHJVN/Qtx6bghooReWbnsgtjcMCTbj/vekWU+QOPS3gNy0MCBRSZYM6RSfX8JnhJIxQaM0
138+
VsRzz7XAOE3ekCVikFcscBqNBW98rVaQMKex5BF0ewEok72Cld0+DJ40w9F8tFZikONaARcv0a0i3sU3
139+
HslxTe1BDH7UIdmQncxNxilVSo6ypfCCd0G3Fw/xcLlSds3h8HbYO4aItRde2BEPR3YiTvoy7cFugUHy
140+
ItZeARoIYbhahxpcDdKgX8Q6i2wSH07L4W6euflk3P4oAMAPXaneEuZ6TBwAAAAASUVORK5CYII=
141+
</value>
142+
</data>
129143
<metadata name="Timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
130144
<value>514, 17</value>
131145
</metadata>
132-
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
133146
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
134147
<value>
135148
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAMMOAADDDgAAAAAAAAAA

QuickIPchange/Form1.vb

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,15 +178,20 @@ Public Class Form1
178178
Return Nothing
179179
End Function
180180

181-
Private Function getGithubReleases() As Dictionary(Of String, String)
181+
Private Async Function getGithubReleases() As Task(Of Dictionary(Of String, String))
182182
Dim result As New Dictionary(Of String, String)
183183
Dim apiUrl As String = "https://api.github.com/repos/InterfaceGUI/QuickIPchange/releases/latest"
184184
Dim responseJson As String
185185

186186
Using wc As New WebClient()
187187
' 設置 User-Agent,GitHub API 需要這個 header
188188
wc.Headers.Add("User-Agent", "request")
189-
responseJson = wc.DownloadString(apiUrl)
189+
Try
190+
responseJson = Await wc.DownloadStringTaskAsync(apiUrl)
191+
Catch ex As Exception
192+
Return Nothing
193+
End Try
194+
'responseJson = wc.DownloadString(apiUrl)
190195
End Using
191196

192197
Dim jsonObject As JObject = JObject.Parse(responseJson)
@@ -207,6 +212,7 @@ Public Class Form1
207212
result.Add("tag_name", tagName)
208213
result.Add("exe_download_url", exeDownloadUrl)
209214
result.Add("release_notes", jsonObject("body").ToString())
215+
ToolStripStatusLabel7.Visible = True
210216
Return result
211217

212218

@@ -216,10 +222,15 @@ Public Class Form1
216222

217223
End Sub
218224

219-
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
225+
Private Async Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
220226
Timer2.Enabled = False
221227

222-
Dim ReleasesInfo As Dictionary(Of String, String) = getGithubReleases()
228+
Dim ReleasesInfo As Dictionary(Of String, String) = Await getGithubReleases()
229+
If ReleasesInfo Is Nothing Then
230+
ToolStripStatusLabel7.Visible = True
231+
Exit Sub
232+
End If
233+
223234
Dim latestVersion As Version = New Version(ReleasesInfo.Item("tag_name"))
224235
Dim currentVersion As Version = Assembly.GetExecutingAssembly().GetName().Version
225236

@@ -235,6 +246,7 @@ Public Class Form1
235246
End If
236247

237248
ElseIf comparisonResult = 0 Then
249+
ToolStripStatusLabel6.Text = $"已是最新版本"
238250
Console.WriteLine($"目前版本 {currentVersion} 已是最新版本")
239251
Else
240252
Console.WriteLine($"目前版本 {currentVersion} 高於 GitHub 上的版本 {latestVersion}")

0 commit comments

Comments
 (0)