相关疑难解决方法(0)

为什么UnhandledExceptionEventArgs.Exception对象是一个对象而不是异常?

为什么是UnhandledExceptionEventArgs.ExceptionObject一个对象而不是一个Exception

我依附于AppDomain.UnhandledException.

我想UnhandledExceptionEventArgs.ExceptionObject加入Exception并插入它.

考虑到这一点,它会永远是空的吗?

MSDN文档不exatly有用.

获取未处理的异常对象.

.net exception-handling exception unhandled-exception

121
推荐指数
2
解决办法
1万
查看次数

查找无休止的异步方法调用

在将ASP.NET应用程序迁移到async/await模型时,我偶然发现了一个相当危险的情况.

情况是我创建了一个异步方法:async Task DoWhateverAsync(),将接口中的声明更改为,Task DoWhateverAsync()并希望编译器通过该警告告诉我代码现在在哪里是错误的.好吧,运气不好.只要通过接口注入该对象,就不会发出警告.:-(

这很危险.有没有办法自动检查返回任务的非等待方法?我不介意一些警告太多,但我不想错过一个.

这是一个例子:

using System.Threading.Tasks;
namespace AsyncAwaitGames
{
    // In my real case, that method just returns Task.
    public interface ICallee { Task<int> DoSomethingAsync(); }

    public class Callee: ICallee
    {
        public async Task<int> DoSomethingAsync() => await Task.FromResult(0);
    }
    public class Caller
    {
        public void DoCall()
        {
            ICallee xxx = new Callee();

            // In my real case, the method just returns Task,
            // so there is no type mismatch when assigning …
Run Code Online (Sandbox Code Playgroud)

c# async-await

27
推荐指数
4
解决办法
4149
查看次数

您想在哪里捕获异常以及为什么?

您想在哪里捕获异常以及为什么?

我很有兴趣看到人们发现将try/catch块放在哪里是有用的,希望可能出现一些通用模式.我将用C++发布我的两个示例答案,但任何语言都可以.

请回答一个位置和原因.谢谢.

architecture error-handling design-patterns exception error-reporting

9
推荐指数
3
解决办法
2063
查看次数

Windows窗体未处理 - 异常对话框

我想在我的C#应用​​程序遇到UE时获得Default Windows Forms Unhandled-Exception Dialog.在vs 2005中我在app.conf中关闭jit Debugging,如下所示:

<configuration>
   <system.windows.forms jitDebugging="false" />
<configuration>
Run Code Online (Sandbox Code Playgroud)

应用程序行为正常并显示Windows窗体UE默认对话框,包括继续,退出,调用堆栈和所有.

然而在vs 2008中,在同一台机器上或不同的机器上,即使我使用jit jit,我仍然可以通过Debug,Send Report和Do not Send按钮获得Default .NET Unhandled-Exception Dialog.

如何使我的vs 2008应用程序像我在vs 2005中制作的那样,显示Windows Forms UE对话框?

请不要使用

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Run Code Online (Sandbox Code Playgroud)

仅仅因为我在我的vs 2005项目中没有使用自定义处理程序,为什么我会在vs 2008中使用?我想让这份工作做CLR.

任何帮助表示赞赏

c# unhandled exception

5
推荐指数
1
解决办法
4838
查看次数

C#中是否存在集中式错误处理流程

有没有办法集中错误处理或异常处理而不使用try catch方法?

c#

3
推荐指数
1
解决办法
1313
查看次数

如何在C#.NET中关闭整个应用程序后结束进程?

我有一个.NET 2005(C#)桌面应用程序,其中有一个登录表单和一个MDI表单,然后有多个子表单.所有其他表单仅以MDI格式打开.

用户登录后,我隐藏登录表单然后显示MDI表单,但是当我关闭MDI表单时,我的应用程序进程没有结束,因为登录表单仍然是隐藏的.我想要的是,当用户关闭MDI表单时,整个应用程序应该关闭(实质上,该进程不应该显示在任务管理器中),因为如果每次用户关闭并重新打开应用程序并登录时,它都会创建一些性能问题.

我正在做类似下面的事情:

//my login validation script,

//after successful login

this.Hide();

if (globalData.ObjMdiMain.IsDisposed)
{
    globalData.ObjMdiMain = new mdiMain();
}
globalData.ObjMdiMain.Show();
Run Code Online (Sandbox Code Playgroud)

globalData是我的静态类,我在其中创建整个应用程序所需的全局对象.在那里,我已经定义了ObjMdiMain我的MDI表单的对象,我在登录表单中访问它.

那么,是否有任何方法或功能将从系统结束整个过程,如"Application.End();" 或者是其他东西?

谢谢!

.net c# desktop-application visual-studio-2005

2
推荐指数
1
解决办法
5668
查看次数

WindowsMo​​bile:从DialogForm处理异常后应用程序退出

我有以下简单的场景:

带有Button的DialogForm,Button_click会抛出异常.

带有按钮和标签的MainForm,在单击中我在Catch块内显示DialogForm的新实例.

如果我在常规WinForms中运行此设置,我可以按预期捕获异常.

如果我在WinMobile中运行它(我在WM5和WM6 Pro上测试过),我可以看到调试器输入了Catch块但是Exception继续传播并且App死了.

MainForm中的代码如下所示:

try
{
   using (DialogForm frm = new DialogForm())
   {
     DialogResult r = frm.ShowDialog();
     label1.Text = r.ToString();
  }
}
catch (Exception ex)
{
  label1.Text = ex.Message;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我进一步调查了一下,在这段代码和Application.Run()周围有一个catch {}块,应用程序仍然退出.

显然它不是一个失控的异常,被抓住并处理得很好.但在此操作之后,它看起来像应用程序执行不需要的Exit().

c# exception windows-mobile winforms

1
推荐指数
2
解决办法
2690
查看次数