如何使用C#在控制台、windows和web的同一类库中编写异常?
我正在尝试用C#创建类库。一旦发生异常,我想向用户显示一条异常消息。但是,此库可以在控制台或windows窗体中同时使用。当应用程序运行时,如何知道运行环境并显示消息如何使用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)
// 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
块中使用异常类型如果您向可能使用库的用户提供异常,您应该抛出异常,他们应该处理它。好吧,向用户显示异常消息不是库的工作,但是这个应用程序是。类应该做的是抛出一个异常并让应用程序处理它。谢谢。我会考虑你的建议。谢谢。我会考虑你的建议。