Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#在控制台、windows和web的同一类库中编写异常?_C#_Windows_Exception_Console_Class Library - Fatal编程技术网

如何使用C#在控制台、windows和web的同一类库中编写异常?

如何使用C#在控制台、windows和web的同一类库中编写异常?,c#,windows,exception,console,class-library,C#,Windows,Exception,Console,Class Library,我正在尝试用C#创建类库。一旦发生异常,我想向用户显示一条异常消息。但是,此库可以在控制台或windows窗体中同时使用。当应用程序运行时,如何知道运行环境并显示消息 // Some codes try { // Successful codes } catch (Exception ex) { var App; // How can we find current application environment? if (App == console_app)

我正在尝试用C#创建类库。一旦发生异常,我想向用户显示一条异常消息。但是,此库可以在控制台或windows窗体中同时使用。当应用程序运行时,如何知道运行环境并显示消息

// Some codes

try
{
    // Successful codes
}
catch (Exception ex)
{
    var App; // How can we find current application environment?

    if (App == console_app)
    {
        Console.WriteLine (ex.Message);
    }
    else if (App == windows_form) // OR wpf
    {
        MessageBox.Show (ex.Message, "Exception Message");
    }
    else if (App == web_app) // asp.net mvc
    {
        // an error page OR javascript message
    }

    throw;
}

// Other codes
如何了解运行环境并显示消息


有办法,但你为什么在乎?如果您想向用户显示不同的消息,可以定义一个
const
,比如
private const string app=“web”
,并在catch块中使用它。rest都将保持不变,请参考定义异常的类库dll,并在
catch
块中使用异常类型

如果您向可能使用库的用户提供异常,您应该抛出异常,他们应该处理它。好吧,向用户显示异常消息不是库的工作,但是这个应用程序是。类应该做的是抛出一个异常并让应用程序处理它。谢谢。我会考虑你的建议。谢谢。我会考虑你的建议。