如何在throw异常中将我的文本显示为错误文本

本文关键字:文本 我的 显示 错误 throw 异常 | 更新日期: 2023-09-27 18:26:14

我写了一个窗口服务项目,当出现一些错误时,我想在OnStart()函数中显示一条错误消息,(带throw)则服务没有启动。

protected override void OnStart(string[] args)
{
    // do some code ...
    // when some error occur:
    throw new System.Exception("my error text!!!");
 }

还好,服务还没有启动。但是"我的错误文本"没有显示!!!并且系统显示自己的错误文本("如果…,某些服务会自动停止")

当他启动服务并出现一些错误时,我如何将我的文本显示为用户的错误文本?

如何在throw异常中将我的文本显示为错误文本

您可以尝试使用User32.dll:的MessageBox功能显示错误消息

private const int MB_SERVICE_NOTIFICATION = 0x00200000;
private const int MB_ICONERROR = 0x00000010;
[DllImport("User32", EntryPoint = "MessageBox")]
private extern static int MsgBox(int hwnd, string lpText, string lpCaption, uint uType); 
protected override void OnStart(string[] args)
{
    // do some code ...
    // when some error occurred:
    MsgBox(0, "my error text!!!", "Error", MB_SERVICE_NOTIFICATION | MB_ICONERROR);
    throw new ApplicationException();
}