没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|行业资讯|编辑:龚雪|2016-06-02 15:35:35.000|阅读 1559 次
概述:本文将为大家讲解如何捕获Unity手游崩溃异常。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
C#脚本未捕获的异常,与Android和Native未捕获异常很大的区别是,未捕获异常不会照成引用的闪退。所以,C#脚本的异常危害相对较小,但是同样更加容易存在在游戏中。闪退问题能够及时发现并进行修复。C#脚本异常,抛出的时机不同,危害性也有所不同; 在Start、Awake等函数抛出的异常,会造成Update、OnGUI无法正常运行,游戏可能表现为无响应、图片确实等。Update、OnGUI的异常也一定会引起游戏逻辑及画面上的一些异常。
从测试角度,C#脚本未捕获的异常时一定需要报告给开发者的。
这几乎是所有语言都会提供的一个机制,在发生未捕获异常时回调。System.AppDomain在Unity的文档中是不存在的,根据微软官网的解释,CurrentDomain获取到当前应用程序当前线程的应用域。
If the UnhandledException event is handled in the default application domain, it is raised there for any unhandled exception in any thread, no matter what application domain the thread started in.
如果是在默认域中注册,任何线程中抛出的未捕获异常均会触发这个未处理异常函数。
然后,在游戏里面,尝试在其他线程抛出异常。
但是,抛出异常后并没有被这个处理函数接收到。
在UI线程中,Unity官方提供的函数基本上都会try..catch,所以很难有出现未捕获的异常。比如,我们尝试通过下面的代码抛出未捕获异常。
GameObject.SendMessage显然是接住了这个异常,并打印出了这个异常信息。所以,UnhandledException大部分时候将会非常鸡肋,并没什么卵用。
根据日志的TAG都会Unity,可以大致判断出UnityEngine自身的接口,在catch异常之后也是会调用Debug.LogError来输出日志的。所以,我们可以通过注册RegisterLogCallBack来获取到系统的调用。
但是,在OnLogCallbackHandler,是不能够调用Debug.Log,Debug.LogError这个API的,调用都会无效。Unity可能是为了避免引起,不必要的无限递归,所以在该函数下禁用Debug.Log。我们可以通过AndroidJavaClass调用Java代码来输出日志。
这样就能顺利的输出,未捕获的异常信息了。
Android在Thread中提供了setUncaughtExceptionHandler和
setDefaultUncaughtExceptionHandler,setUncaughtExceptionHandler函数只对应注册的线 程中起作用,setDefaultUncaughtExceptionHandler能够在所有线程中都有用。所以,我 们要监听Jvm层抛出的未捕获异常,可以直接注册DefaultUncaughtExceptionHandler。
默认的未捕获处理函数,在接到异常之后,最后会把进程杀死。如果,不杀死会照成无响应bug。
在代码中增加上述,检测程序后,即可输出如下的日志结果。
原文转载自:51testing
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
Java 开发团队常常面临测试覆盖率与开发效率的双重挑战。通过引入 AI 与自动化工具,团队不仅能减轻静态分析与单元测试的负担,还能在保障代码质量的同时提升开发节奏。本文以 Parasoft Jtest 为案例,深入探讨了当前主流的 AI 测试实践如何帮助企业实现代码级测试的优化与落地。
Sparx Systems Enterprise Architect(EA)作为一款领先的企业级建模工具,凭借其强大的四大引擎——BPSim、DMN、Open Modelica/SysML和可执行代码生成,为企业提供了从流程优化到智能决策的全方位支持。本文将深入解析这四大核心引擎如何显著提升企业建模的智能化水平和实用价值。
UI自动化测试中,团队常因语言偏好不同而协作困难,脚本复用也麻烦。从简单的录制测试升级到灵活脚本,或者搭建稳定框架,往往费时费力。TestComplete用自动化UI测试直接解决这些问题:它支持多种语言并行开发(Python, C#, C++等),让每个人用顺手的工具;还能轻松把录制脚本转换成代码,省去重写麻烦;并且自带实用框架和项目示例,开箱即用,大大加快搭建速度。
CodeRush 25.1 新推 AI 双引擎 AiGen(语音/文字生成与修改代码)和 AiFind(智能代码搜索),直接在 Visual Studio 环境中响应,免除窗口切换与手动操作,让开发者更专注核心问题。
针对 C/C++ 软件开发提供统一、完全集成的测试解决方案。
LoadRunnerLoadRunner是一款负载测试软件,可使您精确洞察端到端系统性能,以便在应用正式推出之前识别和解决其中的问题。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号