串行字符串与异常消息

时间:2014-08-06 16:35:17

标签: c# string exception-handling concatenation xsd-validation

我正在尝试捕获异常,当我的XSD无效时,只是在控制台上显示一条消息,详细说明用户出了什么问题。但是,控制台上显示的消息并不像我预期的那样。

try
{
    // doing stuff here
}
catch (XmlException e)
{
    Console.WriteLine("ERROR: Schema " + e.Message);
    return false;
}

我希望输出类似于:

"ERROR: Schema ' is an unexpected token. The expected token is '>'. Line 15, position 38."

然而,我得到的输出是:

"' is an unexpected token. The expected token is '>'. Line 15, position 38."

开头的字符串不会显示在消息之前。

我已经尝试将值存储在两个字符串中并尝试连接这两个字符串但没有成功。理想情况下,我想要一个包含' ERROR'的串联的字符串。部分和异常产生的消息。

2 个答案:

答案 0 :(得分:2)

我认为您的架构包含换行符。文本ERROR: Schema '必须在输出窗口中更高的位置。

您可以使用以下方式检查:

catch (XmlException e)
{
    string message = "ERROR: Schema " + e.Message;
    message = message.Replace(Environment.NewLine, "");
    message = message.Replace("\n", "");
    message = message.Replace("\r", "");

    Console.WriteLine(message);
    return false;
}

答案 1 :(得分:0)

尝试:

try
{
    // doing stuff here
}
catch (XmlException e)
{
    errorMessage = "ERROR: Schema " + e.Message.toString();

    Console.WriteLine(errorMessage );
    return false;
}