【问题标题】:How to create Exception instance in C#?如何在 C# 中创建异常实例?
【发布时间】:2019-09-20 15:51:05
【问题描述】:

我是 upgrading Crashlytics sdk,从 Fabric 到 Firebase,用于 Unity3d 项目,并尝试调整 api 更改以捕获异常。

我需要从下一个参数构造 Exception 实例:

void OnLogMessageReceived(String log, String stackTrace, LogType type)

现在我有

Crashlytics.Log(log);
Crashlytics.Log(stackTrace);

Exception exception = new Exception(type);
Crashlytics.LogException(exception);

是否可以发送stackTrace 并让它像在 Fabric 中一样结构化?

【问题讨论】:

标签: c# firebase error-handling sdk crashlytics


【解决方案1】:

我是 Fabric/Firebase 的 Zubair。随着 Firebase Crashlytics for Unity 的发布,已经使用 Fabric Crashlytics SDK 的开发人员在升级到 Firebase Crashlytics 时可能需要对其代码进行一些小的更改。 This guide 将提供有关 API 的具体更改、更改原因以及需要解决方法的有用建议的详细信息。

【讨论】:

  • 你好,哦。我现在看到了解决方法,但是检查一些示例会很酷。
【解决方案2】:

这个 Wrapper 效果很好:

    class WrappedException : Exception
    {
        private string oldStackTrace;

        public WrappedException(string message, string stackTrace) : base(message)
        {
            this.oldStackTrace = stackTrace;
        }

        public override string StackTrace
        {
            get
            {
                return this.oldStackTrace;
            }
        }
    }


    void OnLogMessageReceived(String log, String stackTrace, LogType type)
    {
        var exception = new WrappedException(type, stackTrace);
        Crashlytics.LogException(exception);
    }

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2011-11-18
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多