重要
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 个字符。