C# 使程序在每次引发异常时发出嘟嘟声

C# 使程序在每次引发异常时发出嘟嘟声,c#,exception,exception-handling,overriding,beep,C#,Exception,Exception Handling,Overriding,Beep,如何使我的控制台程序或服务: Console.Beep() 特定异常时发出嘟嘟声 编辑1:由于我正在处理已经包含数百个异常的遗留代码,因此在每个异常中添加Console.Beep()不是一个选项,更重要的是,考虑到存在过多的异常,它也不容易维护。使用Console.Beep()在try-catch块内。或者,如果您想要特定异常的嘟嘟声,请仅在您想要的异常被抛出时使用 try { // Your code that is likely to throw exception. } cat

如何使我的控制台程序或服务:

  • Console.Beep()
    
  • 特定异常时发出嘟嘟声
编辑1:由于我正在处理已经包含数百个异常的遗留代码,因此在每个异常中添加
Console.Beep()
不是一个选项,更重要的是,考虑到存在过多的异常,它也不容易维护。

使用
Console.Beep()
在try-catch块内。或者,如果您想要特定异常的嘟嘟声,请仅在您想要的异常被抛出时使用

try
{
    // Your code that is likely to throw exception.
}
catch (InvalidCastException e)
{
    // Beep when invalid cast.
    Console.Beep();
}
catch (NullReferenceException e)
{
    // Don't beep on the null reference. 
}

每个异常都会发出嘟嘟声:

try
{
    //...
}
catch
{
    Console.Beep();
}
try
{

}
catch(InvalidOperationException ex)
{
    Console.Beep();
}
特定异常时发出嘟嘟声:

try
{
    //...
}
catch
{
    Console.Beep();
}
try
{

}
catch(InvalidOperationException ex)
{
    Console.Beep();
}

很简单,您可以将希望引发异常的代码放在try-catch块中,如下所示:

try
{
     // your code here
}
catch (Exception) // this goes to every single exception, if you want to beep on a specific one just replace the Exception with the exception you expect e.g NullReferenceException
{
     Console.Beep();
     throw;
} 

如果您不想在异常发生时看到异常,只需从catch块中删除throw语句。

如果您想知道异常何时抛出(与未捕获时相反),则可以在抛出异常时使用注册通知。

,您正在寻找一个事件,例如抛出异常时正在执行的事件?如果是这样,有一个例子。当抛出异常时,您实现了希望执行的操作,在您的示例中是控制台。那么,当异常未处理时,情况如何?我认为即使异常未处理,事件仍会执行。