错误

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方法。

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

注意

处理的错误目前仅在 Xamarin 平台上受支持。

常规信息

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

有关功能集的详细信息, 请参阅错误文档

集成崩溃 SDK 以开始使用

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

未捕获的错误 (崩溃)

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

在 Try/Catch 机箱内 (错误)

通过在 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 个字符。