在 .NET 中,是否可以在事件处理程序中应用 try catch?

In .NET , is it possible to apply try catch inside an event handler?

我正在创建一个基于指纹识别的系统,因此我正在做一个 windows 服务,使用 DigitalPersona,它是一个指纹 reader。

这个 reader 有很多方法,比如 onFingerGone、OnFingerTouch 等等。此方法是在触摸指纹 reader 时触发的事件。 一切顺利,直到那部分。但是当没有 activity 时......(我的意思是当指纹 reader 未被触摸时)在控制台中抛出错误。

"The proccess exited with code 0"

请帮忙。

一些细节: - 使用 Visual Studio 2010 .Net 4

错误代码 0 表示没有错误。

使用事件(OnFingerGone、OnFingerTouch)意味着您的应用程序需要等待。 "The proccess exited with code 0" 通常意味着您的 控制台应用程序 的主线程 (?) 已完成,或者您的 WPF、WinForms 等应用程序调用了类似 this.Application.Close() 的内容。

例如:

class Pseudocode {
    event EventHandler myEvent;

    int main(){
        myEvent += onMyEvent;
        //do work 1
        return 0;
    }

    void onMyEvent(Object sender, EventArgs e){
       //do work 2
    }
    //other methods and work
}

如果main()中的工作量较小,应用程序将立即关闭。

在控制台应用程序中,您可以简单地添加 Console.ReadLine(); 来防止这种情况发生。 (在 return 0 之前;根据示例),因此您的应用程序将等待 "Enter" 键。

在窗口应用程序中,您需要查找手动退出调用或类似的东西,因为它们不被称为 "self-closable"。