难道只能处处try?

he717 2009-09-11 03:29:55
我想拦截所有的异常。于是在Program.cs的Main函数里加了try,套住了main函数里的所有代码。但Application.Run(new Form1());以后,除非form1退出了,否则就不会出来的,我的try也不起作用。只能在form里做任何事情的时候都要try,比较麻烦。有没有一个全局的try,一旦发生异常,不论在什么地方都可以try到。

[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch (Exception e) //貌似永远也不会触发
{
MessageBox.Show(e.Message);
}
}
...全文
114 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
he717 2009-09-14
  • 打赏
  • 举报
回复
我用的是.net cf,没有Application.ThreadException。弄了好几天了,还是不行。
assky124 2009-09-11
  • 打赏
  • 举报
回复
try会使程序的效率大打折扣,尽量少用
我是谁 2009-09-11
  • 打赏
  • 举报
回复
去globe文件中捕捉错误
wangjiafeng2008 2009-09-11
  • 打赏
  • 举报
回复
try ..catch是保证程序稳定性的一个做法,但可以将错误统一抛到顶层,统一处理。。。实现统一的错误处理机制
tsp860901 2009-09-11
  • 打赏
  • 举报
回复
学习。。
OhYeah_Dragon 2009-09-11
  • 打赏
  • 举报
回复
如果你的程序需要处处TRY-CATCH 那你的程序应该重新规划一下了
你的设计逻辑恐怕有问题
mikebai 2009-09-11
  • 打赏
  • 举报
回复
是可以全局做监控的 啥OnException来着...忘记了 ...
CsToD 2009-09-11
  • 打赏
  • 举报
回复
Application.ThreadException事件

需要注意的是:这个事件只有在非调试模式才会触发(Ctrl+F5或者直接双击exe)
he717 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyi8808 的回复:]
C# codeusing System;using System.Windows.Forms;class Form1 : Form
{
Form1()
{int i=0;int j=3/ i;
}

[STAThread]staticvoid Main()
{try
{
Application.EnableVisualStyles();
¡­
[/Quote]

但那是构造函数耶,进了form就没戏了。。。
wuyi8808 2009-09-11
  • 打赏
  • 举报
回复
using System;
using System.Windows.Forms;

class Form1 : Form
{
Form1()
{
int i = 0;
int j = 3 / i;
}

[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch (Exception e) // 在这个程序中会触发
{
MessageBox.Show(e.Message); // 显示“试图除以零”
}
}
}
xuejiecn 2009-09-11
  • 打赏
  • 举报
回复
flyerwing 2009-09-11
  • 打赏
  • 举报
回复
程序写的好,好象TRY很少用.

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧