首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未处理的异常处理

未处理的异常处理
EN

Stack Overflow用户
提问于 2013-01-15 23:11:10
回答 2查看 1.6K关注 0票数 0

在我的MonoDroid应用程序中,当发生未处理的异常时,应用程序终止,没有任何消息。如果我可以在本地设备上重现该错误,我就可以通过Visual Studio对其进行调试,而不会出现任何问题。

然而,在远程设备上,我遇到了一个解决方案。

我在Application类中尝试了以下操作,但它实际上并不写入我的日志文件,除非我在Visual Studio中通过调试器运行。

代码语言:javascript
复制
public override void OnCreate()
    {
        base.OnCreate();                                    
        AndroidEnvironment.UnhandledExceptionRaiser += new EventHandler<RaiseThrowableEventArgs>(AndroidEnvironment_UnhandledExceptionRaiser);
    }

    void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs e)
    {
        // Write Log File
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-16 16:38:20

尝试如下所示:

EDIT :此代码无法处理捕获的错误。请参阅@Jim G.'s answer...

就我个人而言,我会将错误处理本地化到您需要它的地方。原因是,当这个处理程序被招募时,你不知道你的应用程序状态是什么-你可能没有你依赖的资源来做处理……

票数 -1
EN

Stack Overflow用户

发布于 2013-06-07 01:47:10

我不同意@SpiritMachine's answer的观点。

单声道文档tells us

注意:您不能依赖AppDomain.UnhandledException事件,因为托管异常在MonoDroid中永远不会不被处理;它们总是在AppDomain.UnhandledException(异常)块中的Android/托管边界处被拦截。

相反,我建议您执行以下操作:

代码语言:javascript
复制
AndroidEnvironment.UnhandledExceptionRaiser += (sender, args) =>
{
    // Do something...
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14340677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档