IOS系统闪退异常(Crash)捕获处理

IOS系统闪退异常(Crash)捕获处理,第1张

我们的程序经常出现异常造成闪退的现象,对于已经发布的APP,如何捕捉到这些异常,及时进行更新解决闪退,提高体验感呢?

对于一些简单,比如一些后台数据的处理,容易重现数组越界,字典空指针错误的,我们用oc的runtime方法进行捕获。比如NSArray的数组越界问题。

源码地址: GitHub地址

我们可以通过runtime进行方法替换,比如我们捕获NSArray的数组越界问题,注意NSArray 是个类簇所以不能简单添加类目

当然这种捕获只能捕获单一的问题,还有其他的报错,那就要写很多的分类处理,如何进行统一的捕捉呢,我们查看下报错信息看下能不找到有用的信息。

如图我们看了报错的方法栈。看到有libobjc的调用。这个就很熟悉了,去看下runtime的源码。可以找到set_terminate设置中止的回调,也就是如果出现报错,系统会回调这个函数,如果外界没有传这个函数objc_setUncaightExceptionHandler,系统会使用默认的实现。 我们只要调用NSSetUncaughtExceptionHandler就可以设置这个方法句柄,系统毁纤出现报蚂余中错时候,回调这个方法,从而让我们对这个错误闷山进行处理.

在AppDelegate里面设置这个方法句柄

然后就可以捕捉异常 ,上传服务或者保存在本地。

然后在这个对象中通过runloop,保住线程,处理后再崩溃.

1.为什么我的电脑打开文件时总是提示应用程序错误

应用程序错误的原因

1.病毒木马造成的,在当今互联网时代,病毒坐着为了获得更多的牟利,常用病毒绑架应用程序和系统文件,然后某些安全杀毒软件把被病毒木马感染的应用程序和系统文件当病毒杀了导致出现应用程序错误。

2.应用程序组件丢失,应用程序完整的运行需要一些系统文件或者某些ll文件支持的,如果应用程序组件不完整也会导致应用程序出错。

应用程序自身的bug引起的应用程序发生异常,人没有完人,程序也一样的,程序员只能做到尽量让bug出现少点,出现一个就解决一个bug。

3.应用软件与 *** 作系统或其他应用软件发生不兼容造成应用程序发生异常。

4. *** 作系统自身的问题, *** 作系统本身有bug ,也会导致出现崩溃 应用程序错误 该内存不能为read。

5.电脑硬件兼容性也会引起的,还有散热不好,超频等也会出现应用程序错误的。

应用程序错误解决办法

先排除是不是病毒木马引起的,请使用金山卫士进行木马查杀,

⑴、进入主界面进入【查杀木马】

⑵、然后点击【快速扫描】即可

2.用金山卫士进行漏洞修复,解决系统本身造成的应用程序发生异常。

⑴、进入主界面进入【漏洞修复】

⑵、然后点击【立即修复】即可

3.如果是单一某个应用程序引起的应用程序错误,那就尝试重新卸载该软件进行重新安装。如果还是无法解决,就关闭其他软件看是否能解决。

4.以上方法还是无法解决,那就肯能是硬件问题引起的,那就分别检查内存条,主板,散热器等等。这个建议找专业硬件维修商解决,不推荐大家自己手动解决。

2.电脑桌面文件每次打开都会显示应用程序错误,怎么解决啊 求解

分析:系统无法正常运行,提示程序程序错好灶误,一般是因为软件或硬件故障导致的,原因很多且很复杂,有可能是系统文件损坏,也可能是病毒感染,也可能是后台自启动程序过多或安全软件安装有多个造成系统假死,也可能是内存、硬盘或主板出现问题。

建议:按从易到难、先软件后硬件的原则逐一排查。

1.重启电脑,如果能够正常进入系统,说明上次不正常只是偶尔的程序或系统运行错误,无关紧要。

2.如果频繁无法正常进入系统,则开机后马上按F8,看能否进入安全模式或最后一次配置正确模式,如能则进入后退出,再重启就应当能进入正常模式。如有安全软件,可在安全模式下使用360安全卫士加360杀毒或者金山毒霸等等其它安全软件进行全盘木马、病毒查杀。

3.如果不能,重启后按F11,看有没有一键GHOST,有则一键还原(以前要进行过一键备份)。

4.如果没有一键还原,则使用系统U盘重装系统。插入U盘后开机连友蔽扮按DEL键(笔记本一般为F2或根据屏幕底行提示字符)进入CMOS,进入BOOT选项卡设置USB磁盘为第一启动项。重启进入U盘启动菜单,选择克隆安装,再按提示 *** 作即可。

系统U盘制作及重装系统的 *** 作步骤为:

1).制作启动U盘:到实体店买个4-8G的U盘(可以要求老板帮你制作成系统U盘即可省略以下步骤),上网搜索下载老毛桃或大白菜等等启动U盘制作工具,将U盘插入电脑运行此软件制作成启动U盘。

2).复制系统文件:上网到系统之家网站下载WINXP或WIN7等 *** 作系统的GHO文件,复制到U盘或启动工具指定的U盘文件夹下。

3).设置U盘为第一启动磁盘:开机按DEL键(笔记本一般为F2或其它)进入BIOS设置界面,进入BOOT选项卡设置USB磁盘为第一启动项(注:部分电脑需要在此时插入U盘进行识别才能设置)。

4).U盘启动并重装系统:插入U盘启动电脑,进入U盘启动界面按提示利用下载来的GHO文件进行克隆安装。

5.如果有系统光盘(没有也可以去电脑商店以5-10元购买),则将系统光盘插入光驱,开机后按DEL键(笔记本一般为F2或根据屏幕底行提示字符)进入CMOS,并在BOOT选项卡中设置光驱(CD-ROM或DVD-ROM)为第一启动项。重启进入光盘启动菜单,选择将系统安装到C区,再按提示 *** 作即可。

6、如果以上 *** 作均无效,则需要逐一替换检查内存、主板、硬盘等等硬并闹件,以确定故障源。

3.电脑一打开软件总是提示应用程序错误,应该怎么解决

如果经常出现错误提示,可按下面的方法进行检修:

1、首先排除应用软件原因引起的故障,将出现“内存不能为”提示的应用软件卸载,然后观察是否还出现“内存不能为”故障。如果不出现“内存不能为”故障,则说明是此应用软件引起的故障,接下来可以重新安装此应用软件或安装新版的应用程序软件。

2、同时运行多款的应用程序软件,也可以造成系统资源紧张,出现错误提示。不要同时运行多款的应用程序软件,先将杀毒软件的监控关闭,(监控功能特别占据系统资源)杀毒时不要运行其它应用程序软件。

3、打开或关闭IE如果出现以上错误提示,可能是IE中有不兼容的插件,可用超级兔子软件或其它优化软件对IE进行修复,或自已将出事前下载的插件设为禁用即可。

4、如果卸载软件或禁用插件后还出现“内存不能为”故障,则不是应用软件或插件引起的故障。用杀毒软件查杀病毒,查杀完成后,电脑如果正常,则是病毒引起的“内存不能为”故障。

5、如果故障依旧,接着依次单击开始/控制面板/系统/硬件/设备管理器/打开“设备管理器”窗口。在此对话框中查看有无带“!”的选项,如果有,将其卸载,再重新安装卸载驱动,然后看电脑是否正常。如果正常,则是设备驱动程序问题造成的“内存不能为”故障。

6、如果故障依旧,则打开机箱观察CPU的风扇转动及CPU的温度是否正常。如果不正常,更换CPU风扇。

7、如果CPU风扇正常,接着检查内存是否兼容,如果不兼容更换内存。

8、如果内存正常,接着重新安装 *** 作系统,在不安装其他应用软件的情况下,不在出现“内存不能为”故障,则故障是由于 *** 作系统引起的,重新安装 *** 作系统后,故障排除。

4.电脑总提示程序错误,怎么办

1)提示最上边的,*******应用程序错误,那个点点的英文是程序名,到网上搜索一下看看是什么程序,或你在 *** 作什么出现的?找到后卸载重装试试,还是不行,换类似的软件。如果找不出原因来,卸载出事前下载的东西,还原一下系统或重装(有问题请你追问我)。

如果是开机出现的是程序的话,看看开机启动中是否有这个选项,如果有将其去掉,如果是系统进程不适用上面的方法。

2)如果上面的方法不能解决,先软后硬,重新安装 *** 作系统,不要安装软件、补丁、驱动等,看看开机还有问题吗?如果没有在逐步的安装驱动、补丁、软件,找出不合适的东西就不要安装了。

请注意:如果还原系统或重装后,安装驱动、补丁、软件等东西时,一定要将影响你这次出事的东西不要在安装上去了,否则就白还原或重装了。

3)硬件方面,如硬盘、内存等是否出现问题,CPU等硬件的温度是否高,如果是硬件问题引起的,建议检修一下去。

传个图做个比喻:

5.电脑在打开文件时出现应用程序错误,怎么办

1.在启动项里按F8,选择“带网络连接的安全模式”,下载并运行360急救箱,急救你的系统!急救完请恢复被误删的文件!再运行360安全卫士,依次查杀木马,清理插件,修复漏洞,清理痕迹,清理垃圾。最后请运行“磁盘碎片整理程序”,每个盘都要清理!再用360的优化系统的启动项!

如果不能联网,可以从“安全模式”进入!最好是进入“带网络连接的安全模式”!【因为联网可以更新到最新的木马!】

【严禁复制,尊重原创!】

【希望我的回答对你有所帮助,如果不行,请留言,我会全程解决!】

6.打开文件总是程序错误怎么修复从起电脑也没用

1.首先排除病毒原因,使用最新版本的360杀毒快速查杀3-5分钟,根据检查结果,点击立即处理。

2.如果应用程序出错的提示是缺少某个文件,那就可能是这个文件损坏,根据这个组件查询是哪个系统组件损坏,重新安装相关组件,恢复程序文件,一般即可解决。

3.若是相关软件自身的组件缺失,只需要重新安装这个软件即可。比如运行迅雷时提示缺少某个文件,可以尝试重新安装迅雷。

4.若以上方法无效,可能是软件之间的冲突导致出错。解决办法是尝试关闭几个无关的正在运行的应用程序,看看错误是否还会重现。若已解决,就知道是哪两个软件冲突,不再同时运行这两个软件即可解决。或者向厂商反馈故障,督促厂商升级解决。如果不清楚是哪几个软件冲突,可行的解决办法是使用360安全卫士的系统优化,在一键优化里,关闭一些不常用的软件启动。这样开机后运行的程序少一些,冲突的概率会下降。

5.对于另一种应用程序出错,截图显示“应用程序出错,**内存地址不能读或不能写”,这种情况最复杂,若以上方法不能解决,则很可能是硬件(主要是内存)故障,可能是兼容性不良,只能联系硬件供应商修理。或者重装系统,重装后短时间内可能会有效。

7.电脑怎么老出现程序错误

如此情况,说明系统有问题了。直接换个验证过的系统盘重装系统就行了,这样就可以全程自动、顺利解决 系统运行错误 的问题了。用u盘或者硬盘这些都是可以的,且安装速度非常快。但关键是:要有兼容性好的(兼容ide、achi、Raid模式的安装)并能自动永久激活的、能够自动安装机器硬件驱动序的系统盘,这就可以全程自动、顺利重装系统了。方法如下:

1、U盘安装:用ultraiso软件,打开下载好的系统安装盘文件(ISO文件),执行“写入映像文件”把U盘插到电脑上,点击“确定”,等待程序执行完毕后,这样就做好了启动及安装系统用的u盘,用这个做好的系统u盘引导启动机器后,即可顺利重装系统了;

2、硬盘安装:前提是,需要有一个可以正常运行的Windows系统,提取下载的ISO文件中的“*.GHO”和“安装系统.EXE”到电脑的非系统分区,然后运行“安装系统.EXE”,直接回车确认还原 *** 作,再次确认执行自动安装 *** 作。(执行前注意备份C盘重要资料!);

3、图文版教程:有这方面的详细图文版安装教程怎么给你?不能附加的。会被系统判为违规的。

重装系统的系统盘下载地址在“知道页面”右上角的…………si xin zhong…………有!望采纳!

8.电脑总是d出程序出错怎样解决、

解决应用程序错误的方法步骤:

1.首先排除病毒原因,使用杀毒软件,比如最新版本的360杀毒快速查杀3-5分钟,根据检查结果,点击立即处理。

2.如果应用程序出错的提示是缺少某个文件,那就可能是这个文件损坏,根据这个组件查询是哪个系统组件损坏,重新安装相关组件,恢复程序文件,一般即可解决。

3.若是相关软件自身的组件缺失,只需要重新安装这个软件即可。比如运行迅雷时提示缺少某个文件,可以尝试重新安装迅雷。

4.若以上方法无效,可能是软件之间的冲突导致出错。解决办法是尝试关闭几个无关的正在运行的应用程序,看看错误是否还会重现。若已解决,就知道是哪两个软件冲突,不再同时运行这两个软件即可解决。或者向厂商反馈故障,督促厂商升级解决。如果不清楚是哪几个软件冲突,可行的解决办法是使用360安全卫士的系统优化,在一键优化里,关闭一些不常用的软件启动。这样开机后运行的程序少一些,冲突的概率会下降。

5.对于另一种应用程序出错,截图显示“应用程序出错,**内存地址不能读或不能写”,这种情况最复杂,若以上方法不能解决,则很可能是硬件(主要是内存)故障,可能是兼容性不良,只能联系硬件供应商修理。或者重装系统,重装后短时间内可能会有效。

9.电脑经常提示”程序错误“,怎么办

0X000000该内存不能为read written的解决方法 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。

一:先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。

内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。

内存插在主板上的金手指部分灰尘太多。4。

使用不同品牌不同容量的内存,从而出现不兼容的情况。5。

超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。

二、如果都没有,那就从软件方面排除故障了。 先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要 *** 作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。

这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。

当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。

若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。

在没有保护机制的 *** 作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的 *** 作系统中,如Windows等,这个 *** 作会马上被系统的保护机制捕获,其结果就是由 *** 作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。

内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于 *** 作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。

在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向 *** 作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。

注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写 *** 作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是 *** 作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的 *** 作顺序下重现错误。

无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。 首先建议: 1、检查系统中是否有木马或病毒。

这类程序为了控制系统往往不负责任地修改系统,从而导致 *** 作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。

2、更新 *** 作系统,让 *** 作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候 *** 作系统本身也会有BUG,要注意安装官方发行的升级程序。

3、尽量使用最新正式版本的应用程序、Beta版、试用版都会有BUG。 4、删除然后重新创建 Winnt\System32\Wbem\Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击管理。

在"服务和应用程序"下,单击服务,然后关闭并停止 Windows Management Instrumentation 服务。 删除 Winnt\System32\Wbem\Repository 文件夹中的所有文件。

(在删除前请创建这些文件的备份副本。) 打开"服务和应用程序",单击服务,然后打开并启动 Windows Management Instrumentation 服务。

当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs 下面搜集几个例子给大家分析: 例一:IE浏览器出现“0x0a8ba9ef”指令引用的“0x03713644” 内存,或者“0x70dcf39f”指令引用的“0x00000000”内存。该内存不能为“read”。

要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。解决方法: 1、开始-运行窗口,输入“regsvr32 actxprxy.dll”回车,接着会出现一个信息对话 框“DllRegisterServer in actxprxy.dll succeeded”,确定。

再依次运行以下命令。(这个方法有人说没必要,但重新注册一下那些.dll对系统也没有坏处,反正多方下手,能解决问题就行。)

regsvr32 shdocvw.dll regsvr32 oleaut32.dll regsvr32 actxprxy.dll regsvr32 mshtml.dll regsvr32 msjava.dll regsvr32 browseui.dll regsvr32 。

电脑显示程序崩溃主老伍培要可分三种情况:

1.由软件造成的崩溃:即使是最简单的 *** 作,比如侍唯程序的安装与 卸载都有可能造成系统崩溃。

2.由系统本身而造成的崩溃:在删除DLL文件,修改注册表。

3.硬件问题所造成的崩溃:计算机不是家具,需要经常维护,

建议:通常重橘大启电脑即可解决。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12513452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存