在 UnhandledException 上显示消息对话框

2023-12-29

在我的应用程序中,我想在出现任何未处理的异常时显示消息对话框。但当抛出未处理的异常时,似乎没有出现对话框消息,显示消息弹出窗口是否有效?另外在 MSDN 文档中我没有找到太多相关信息。

以下是我正在使用的测试代码:

public App()
{
    this.InitializeComponent();
    this.Suspending += OnSuspending;
    this.UnhandledException += App_UnhandledException;
}

private async void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    MessageDialog dialog = new MessageDialog("Unhandled Execption", "Exception");
    await dialog.ShowAsync();
}

这是可能的,但您需要确保设置UnhandledExceptionEventArgs.Handled在显示之前将属性设置为 trueMessageDialog。如果Handled属性未设置,操作系统将在事件处理程序返回后立即终止应用程序,在本例中是一旦执行到达await dialog.ShowAsync()。由于应用程序会立即终止,因此您甚至没有机会看到该对话框。

理想的实现如下所示:

private async void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    e.Handled = true;
    MessageDialog dialog = new MessageDialog("Unhandled Execption", "Exception");
    await dialog.ShowAsync();
    Application.Exit();
}

一旦用户确认MessageDialog,应用程序以编程方式终止。这是一个很好的做法,因为在未处理的异常之后,我们可能不知道应用程序处于什么状态,并且可能无法恢复。 您还可以执行某种日志记录或让用户发送错误报告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 UnhandledException 上显示消息对话框 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • 关闭 SQLDataReader - 如何判断它们是否已关闭?

    我发现我遇到了一些网站连接池问题 我正在追踪它们 我知道要寻找的一件事是确保所有 SQLDataReaders 都已关闭 我已经检查并确保它们已关闭 我脑海中浮现的一个问题是关于返回 SQLDataReaders 的方法以及它们如何关闭 或
  • EC2 Linux 端口 7070 上的 Dotnet 应用程序无法访问

    can t connect to an dotnet app running in an aws EC2 instance on port 7070 I ve added the port to the security group and
  • Android 进度条设置在屏幕中央的方法

    我试图在屏幕中央显示进度条 但它没有显示在中央 下面是我的布局 我在这里做错了什么 基本上 这是一个在顶部显示图像和 Android 图库小部件的布局 当用户单击缩略图时 我正在从网络加载图像 并且我想在加载图像时显示进度对话框
  • 有没有办法让代码分析忽略“InternalsVisibleTo”?

    我们有很多包含内部类的程序集 我们使用这些内部类进行单元测试InternalsVisibleTo使内部类对单元测试程序集可见 这工作正常 但问题是一旦你使用InternalsVisibleTo 它可以防止代码分析 CA1812 警告 避免未
  • 是否可以修改 Text swt 小部件换行的方式?

    开发平台是Fedora上的Eclipse RCP 3 4 它使用Gtk本机组件 我需要避免自动换行 即 Hello World 显示为案例 N 1 但我需要案例 N 2 1 Hello 2 Hello Wor World ld 有简单的解决
  • 凤凰卫视 - 从控制器广播 - 如何找到 current_user?

    我有一个应用程序 可以在submission controller 中广播一些表单提交 如下所示 Formerer Endpoint broadcast forms form id new submission payload 但是 我现在
  • 如何可视化大图?

    我正在尝试创建一个节点数量超过 400 个的图表 但未以正确的方式进行可视化 import networkx as nx G nx MultiGraph G add nodes from freqItemSet G add edges fr
  • 使用curl发送cookie

    我正在使用curl 来检索cookie 如下所示 curl c cookies txt url 然后我从 cookies txt 文件中解析我想要的 cookie 并使用 cookie 再次发送请求 curl b name value ur
  • 求解二次方程但出现奇怪的错误

    我正在尝试用 Fortran 语言编写第一个程序 尝试求解二次方程 我对我的代码进行了两次和三次检查 没有发现任何问题 我不断在不同位置收到 1 处名称中的无效字符 和 1 处无法分类的语句 代码有什么问题吗 This program so
  • 向 t-SNE 模型添加新点

    我尝试在 scikit learn 中使用 t SNE 算法 import numpy as np from sklearn manifold import TSNE X np array 0 0 0 0 1 1 1 0 1 1 1 1 m
  • 错误 itms-90035 - Xcode

    我开发了一个phonegap应用程序 它在iPhone上运行得非常好 现在 我想将应用程序提交到应用程序商店 以下是我提交应用程序时遵循的程序 打开 Xcode 并存档项目 点击验证 即成功 单击 提交到应用程序商店 这是我收到以下错误的地
  • svn merge --dry-run 显示 svn diff

    我正在使用一个代码库 历史上 是手动合并的 而不是通过svn merge 我试图通过向每个人证明合并是多么有用来改变这一点 但当我进行空运行时 我得到了这个 svn merge Repo URL c 21355 21358 21364 21
  • 如何提高 Google 语音识别对分隔数字的准确性

    我们将此图像提供给我们的用户 在此输入图像描述 https i stack imgur com 2jkBp jpg 这张图片代表单独的数字 我们所有的用户都会在麦克风中将其读为 11 0 9 5 我们使用 Google Speech Eng
  • ASP.NET Core 3.0 [FromBody] 字符串内容返回“JSON 值无法转换为 System.String”。

    Using FromBody 上的字符串内容ApiController在 ASP NET Core 3 0 中返回验证错误 type https tools ietf org html rfc7231 section 6 5 1 title
  • 如何在一行中将输入流重定向到输出流?

    我想做这个 cout lt lt cin 而不是这个 int x cin gt gt x cout lt
  • 整个计算机的文件观察器(替代方案?)

    我想编写一个应用程序来获取整个计算机上每个文件更改的事件 以在文件位置 权限和我的应用程序的数据库之间进行同步 我正在考虑使用 net filewatcher 类 但经过一些测试后我发现了以下限制 1 文件观察器有一个缓冲区 http ms
  • C 中的 String.indexOf 函数

    是否有 C 库函数可以返回字符串中字符的索引 到目前为止 我发现的只是像 strstr 这样的函数 它将返回找到的 char 而不是它在原始字符串中的位置 strstr返回指向找到的字符的指针 因此您可以使用指针算术 注意 此代码未测试其编
  • 找不到使用 sqlplus 控制台创建的目录

    我使用 SQLPlus 控制台创建了一个目录 但在文件系统上找不到它 这是我使用的命令 SQL gt create directory secfile as opt oracle Directory created 我查看了我的 Oracl
  • ModuleNotFoundError:没有名为“django.utils.six”的模块[重复]

    这个问题在这里已经有答案了 HTTP GET admin 500 0 00 127 0 0 1 51425 回溯 最近一次调用最后一次 文件 C Program Files x86 Microsoft Visual Studio Share
  • 在 UnhandledException 上显示消息对话框

    在我的应用程序中 我想在出现任何未处理的异常时显示消息对话框 但当抛出未处理的异常时 似乎没有出现对话框消息 显示消息弹出窗口是否有效 另外在 MSDN 文档中我没有找到太多相关信息 以下是我正在使用的测试代码 public App thi