返回提交历史
Modified
HaloPixelToolBox/HaloPixelToolBox/Utilities/Helpers/UpgradeHelper.cs
+26
-2
Modified
HaloPixelToolBox/HaloPixelToolBox/ViewModels/AppShellPageViewModel.cs
+6
-0
XFEstudio/HaloPixelToolBox
Add error handling for update check failure
- Wrapped GetReleaseNotes and NeedUpgrade methods with try-catch blocks - Made GetReleaseNotes return nullable to indicate failure - Added null check in AppShellPageViewModel to show user-friendly error message - Prevents InvalidOperationException from crashing the application Co-authored-by: XFEstudio <132526994+XFEstudio@users.noreply.github.com>
b7c4651
代码差异
2 个文件
+32
-2
@@ -15,13 +15,37 @@ public static class UpgradeHelper
15
15
/// 检测是否需要更新
16
16
/// </summary>
17
17
/// <returns></returns>
18
public static async Task<bool> NeedUpgrade() => (await Upgrader.GetReleaseNotes("HaloPixelToolBox", Version.ToString())).IsLatest;
18
public static async Task<bool> NeedUpgrade()
19
{
20
try
21
{
22
return (await Upgrader.GetReleaseNotes("HaloPixelToolBox", Version.ToString())).IsLatest;
23
}
24
catch (Exception ex)
25
{
26
Console.WriteLine($"[ERROR]检查更新时发生错误:{ex.Message}");
27
// 发生错误时默认返回 true(表示已是最新版本),避免影响用户使用
28
return true;
29
}
30
}
19
31
20
32
/// <summary>
21
33
/// 获取更新信息
22
34
/// </summary>
23
35
/// <returns></returns>
24
public static async Task<UpgradeInfoNotes> GetReleaseNotes() => await Upgrader.GetReleaseNotes("HaloPixelToolBox", Version.ToString());
36
public static async Task<UpgradeInfoNotes?> GetReleaseNotes()
37
{
38
try
39
{
40
return await Upgrader.GetReleaseNotes("HaloPixelToolBox", Version.ToString());
41
}
42
catch (Exception ex)
43
{
44
Console.WriteLine($"[ERROR]获取更新信息时发生错误:{ex.Message}");
45
// 返回 null 表示获取失败
46
return null;
47
}
48
}
25
49
26
50
/// <summary>
27
51
/// 开始更新
@@ -45,6 +45,12 @@ public partial class AppShellPageViewModel : ViewModelBase
45
45
MessageService.ShowMessage("正在检查更新...", "检查更新", InfoBarSeverity.Informational);
46
46
Console.WriteLine("正在检查更新...");
47
47
var upgradeInfo = await UpgradeHelper.GetReleaseNotes();
48
if (upgradeInfo == null)
49
{
50
MessageService.ShowMessage("检查更新失败,请稍后重试", "检查更新", InfoBarSeverity.Error);
51
Console.WriteLine("[ERROR]获取更新信息失败");
52
return;
53
}
48
54
if (upgradeInfo.IsLatest)
49
55
{
50
56
MessageService.ShowMessage("当前已是最新版本", "检查更新", InfoBarSeverity.Success);