gpt4 book ai didi

ios - 除了 Crittercism 之外,用自己的方式处理 iOS 异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:19 25 4
gpt4 key购买 nike

我有一个 ios 应用程序,我已经在其中使用了 Crittercism。它完美地报告异常。

我的问题是我还希望将这些异常记录到我的后端服务器。

我尝试了很多方法来实现它,但都无济于事。以下是我尝试过的事情的列表:

  • 打电话NSSetUncaughtExceptionHandler(&myExceptionHandler);

如果我这样做,Crittercism 中不会报告异常。

  • 打电话NSSetUncaughtExceptionHandler(&myExceptionHandler);

将异常发送到我的服务器。然后在myExceptionHandler函数中调用Crittercism的构造函数,重新抛出异常。不起作用。

  • 调用 Crittercism 的构造函数,然后调用 NSSetUncaughtExceptionHandler(&myExceptionHandler); 并在 myExceptionHandler 中调用 [Crittercism logHandledException:exception]; .也不行。

  • 在我的异常处理程序中序列化异常对象并将其存储在用户首选项中。当用户重新启动应用程序时,调用 [Crittercism logHandledException:exception]; 然后将异常发送到我的后端服务器。问题是,我无法将字符串反序列化为异常对象。我无法将 NSString 形式的堆栈跟踪放入我的异常对象中。

一些我本可以尝试的事情:

  • 让 crittercism 处理异常,然后在下次重启时,将调用 crittercismDidCrashOnLastLoad - 但我是否有异常信息存在或我可以从某个地方访问它。

  • 我可能不需要将字符串反序列化为异常对象。我相信 Crittercism 也正在将异常更改为 json 对象并将此 json 对象发送到其服务器。但我无法找出使用哪些函数将自定义 json 对象发送到 crittercism。

有人可以指导我如何进行吗?

最佳答案

我已经找到了解决办法。首先使用

初始化 crittercism 对象
[Crittercism initWithAppID:crittercismAppID andKey:crittercismKey andSecret:crittercismSecret];

现在定义

NSUncaughtExceptionHandler* crittercismHandler = NSGetUncaughtExceptionHandler();//You have stored the reference to the crittercism function that was going to get called in the event of an exception

然后,

NSSetUncaughtExceptionHandler(&myHandledException);//Set the handler to your custom function

在你的自定义函数中,对你的异常做任何你想做的事,然后调用

NSSetUncaughtExceptionHandler(crittercismHandler);//this will re-set the exception handler to the one of crittercism

打电话

crittercismHandler(exception);//This will send the exception to crittercism servers.

您可以对信号做类似的事情。

关于ios - 除了 Crittercism 之外,用自己的方式处理 iOS 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940316/

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