gpt4 book ai didi

c# - 在 Unity 中捕获所有异常

转载 作者:行者123 更新时间:2023-11-30 20:17:58 26 4
gpt4 key购买 nike

我在应用程序商店中有一个 Unity 手机游戏,我有一个功能可以将玩家的电子邮件发送到我的服务器,以通知我发生了一些不应该发生的事情。如果例如我写的一个 try 失败了,我给自己发了一封电子邮件,看看,肯定有一个错误。

是否有可能构建类似 OnException 处理程序的东西,它会向我发送有关发生的每个异常的电子邮件,包括我没有编写的代码?一些异常可能来 self 使用的插件,所以我想要某种监听器,它会在任何类型的异常被调用时做一些事情。

这可能吗?

最佳答案

不能捕获其他插件中的所有其他异常。 Unity 在后台执行此操作,Unity 为您提供 API 以接收它捕获的异常:

较新版本的 Unity:

void OnEnable()
{
Application.logMessageReceived += LogCallback;
}

//Called when there is an exception
void LogCallback(string condition, string stackTrace, LogType type)
{
//Send Email
}

void OnDisable()
{
Application.logMessageReceived -= LogCallback;
}

Unity 的旧版本:

void OnEnable()
{
Application.RegisterLogCallback(LogCallback);
}

//Called when there is an exception
void LogCallback(string condition, string stackTrace, LogType type)
{
//Send Email
}

void OnDisable()
{
Application.RegisterLogCallback(null);
}

还有 logMessageReceivedThreaded .

编辑:

堆栈跟踪问题:

如果stackTrace参数为空则可以使用System.Diagnostics.StackTrace类以在仍在 LogCallback 中时自己手动检索堆栈跟踪功能。例如,

void LogCallback(string condition, string stackTrace, LogType type)
{
//Send Email

System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace();
Debug.Log(sTrace.ToString());
}

关于c# - 在 Unity 中捕获所有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42952371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com