错误

重要

Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息

App Center 错误允许你处理应用中的错误,并避免应用中的潜在问题。 本部分介绍如何捕获和报告应用中的错误。 了解何时以及如何将错误用于 官方文档中处理异常的最佳实践

注释

当前仅在 Xamarin 平台上支持已处理的错误。

一般信息

在应用程序中运行 App Center 时,服务会报告应用程序生存期内的所有错误。 这些错误会在服务器发生时(前提是存在网络连接)或下次启动应用程序时发送到服务器。

“错误”文档中了解有关功能集的详细信息。

集成崩溃报告 SDK 来开始操作

若要跟踪 Xamarin 应用中的错误,请在 App Center SDK 中集成崩溃模块。 请查看 崩溃 SDK 文档,了解如何操作。

未捕获的错误(崩溃)

未捕获的错误(崩溃)是在 try/catch 块之外发生的错误。 在集成 App Center SDK 的崩溃模块时,App Center 默认会自动报告这些崩溃。

在 Try/Catch Enclosure 内 (错误)

通过在 try/catch 块内调用 TrackError 方法,可以控制在发生错误时发送到 App Center 服务的信息,并更清楚地了解错误的细节及设备的状态。

使用 TrackError 此方法有很多好处:

  • 以更高的准确度将报表发送到服务。
  • 将报表与额外信息一起发送到服务。

在 App Center 中跟踪已处理的错误

集成崩溃处理 SDK,以处理错误并将其提交到 App Center。 作为本模块的一部分,您可以使用TrackError方法跟踪错误:

try
{
    int divByZero = 42 / int.Parse("0");
} catch (DivideByZeroException ex){
    Crashes.TrackError(ex);
}

详细了解如何使用崩溃 SDK 来跟踪 Xamarin 中的错误,请参阅我们的 崩溃 SDK 文档

向错误捕获中添加附加信息

可以定制错误报告,以便发送到 App Center,从而提供更多有关错误的上下文信息。 通过将字符串键/值对字典传递给 TrackError 方法来实现此目的。 这些属性是可选的。 例如:

try
{
    using (var text = File.OpenText("saved_game001.txt"))
    {
        Console.WriteLine("{0}", text.ReadLine());
        ...
    }
}
catch (FileNotFoundException ex)
{
    Crashes.TrackError(ex, new Dictionary<string,string>{
        { "Filename", "saved_game001.txt" },
        { "Where", "Reload game" },
        { "Issue", "Index of available games is corrupted" }
    });
}

此处完整的异常(ex)仍将被发送回 App Center 服务,此外,还会创建一个包含额外调试信息的字典并发送。

局限性

  • 可以为每个错误定义最多 20 个属性,超出该限制的任何属性都将被拒绝。
  • 每个错误属性键的最大字符数和错误属性值为 125 个字符。