惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
罗磊的独立博客
F
Fortinet All Blogs
T
Threatpost
Y
Y Combinator Blog
博客园_首页
美团技术团队
Security Latest
Security Latest
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
V
V2EX - 技术
The Cloudflare Blog
L
LINUX DO - 热门话题
博客园 - 司徒正美
Jina AI
Jina AI
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
The Hacker News
The Hacker News
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Latest news
Latest news
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
雷峰网
雷峰网
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
W
WeLiveSecurity
D
DataBreaches.Net
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
S
Securelist
Help Net Security
Help Net Security

博客园 - 昨夜飘风

WPF 通过共享内存播放视频 C# 模拟网页拖拽 .net4.0中wpf单例启动 wpf 自定义ContextMenu样式,可以调节ContextMenu的宽度 Oracle 开发经验 WPF跑马灯效果 android私有文件夹的访问 [转]C#内存操作 C#串口发送接受数据 C# 制作外挂常用的API silverlight 动画 性能优化 SilverLight 动画缓冲(Animation Easing) - 昨夜飘风 C# 访问USB(HID)设备 收藏一个地址(居然说我标题已经存在) 收藏一个地址 (2009-06-24) SqlCommandBuilder使用的注意事项 助睡眠音乐 (2009-06-22) 班德瑞官方试听网站 - 昨夜飘风 (2009-06-18)今日收获 工厂方法 (2009-06-17)今日收获-只读列隐藏-win2003 dll文件下载
体面地处理程序的未捕获异常
昨夜飘风 · 2009-09-17 · via 博客园 - 昨夜飘风

经常有客户抱怨程序遇到错误的时候程序就退出了,甚至来不及保存窗体的输入数据,如果是普通的搜索界面也就罢了,但如果客户是呼叫中心,问题就严重了.按道理,我们的程序员应该处理所有的异常,但有事实上做到的很难,因为出乎意料的情况太多了.

在这篇文章,我给大家介绍一下我的处理方法。

首先介绍相应的C#相关知识:

System.Windows.Forms.Application类

提供 static 方法和属性以管理应用程序,例如启动和停止应用程序、处理 Windows 消息的方法和获取应用程序信息的属性。

System.Windows.Forms.Application.ThreadException 事件

在发生未捕获线程异常时发生。

System.Windows.Forms.Application.SetUnhandledExceptionMode()方法

指示应用程序如何响应未处理的异常。

  • SetUnhandledExceptionMode(UnhandledExceptionMode)

    指示应用程序如何响应未处理的异常。

  • SetUnhandledExceptionMode(UnhandledExceptionMode, Boolean)

    指示应用程序如何响应未处理的异常,同时可选择应用特定于线程的行为。

System.Windows.Forms.UnhandledExceptionMode枚举

定义 Windows 窗体应用程序应在何处发送未处理的异常。

public enum UnhandledExceptionMode

{

Automatic,        //将所有异常都传送到 ThreadException 处理程序,除非应用程序的配置文件指定了其他位置。

ThrowException,    //从不将异常传送到 ThreadException 处理程序。忽略应用程序配置文件。

CatchException        //始终将异常传送到 ThreadException 处理程序。忽略应用程序配置文件。

}

以下是我的实现示例:

/// <summary> 
/// 应用程序的主入口点。 
/// </summary> 
[STAThread] 
static void Main() 

     
    
//应用程序的主入口点添加ThreadException的事件处理。 
    Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); 
     

 
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) 

    
//作为示例,这里用消息框显示异常的信息 
    MessageBox.Show(e.Exception.Message,"异常",MessageBoxButtons.OK,MessageBoxIcon.Error); 
}