Csharp/C#教程:捕获Unity中的所有exception分享


捕获Unity中的所有exception

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

是否有可能构建类似OnException处理程序的东西,它会向我发送每个发生的exception的电子邮件,包括我没写的代码? 有些例外可能来自我使用的插件,所以我希望有一些Listener,当任何类型的exception被调用时它会发生。

那可能吗?

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

较新版本的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问题

如果stackTrace参数为空,那么您可以使用System.Diagnostics.StackTrace类在LogCallback函数内部手动检索LogCallback 。 例如,

 void LogCallback(string condition, string stackTrace, LogType type) { //Send Email System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace(); Debug.Log(sTrace.ToString()); } 

尝试这个解决方案,应该适用于您的情况:

https://answers.unity3d.com/questions/47659/callback-for-unhandled-exceptions.html

看看曲棍球应用程序 。 非常好的工具,拥有Unity sdk并完全满足您的需求。 每个Debug.LogError或Debug.LogException都会在那里报告。 因此,您不仅可以收到有关代码exception的通知,还可以通知您丢失的某些数据或者您要报告为错误的任何内容。

上述就是C#学习教程:捕获Unity中的所有exception分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/999184.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐