基本上我有一个字符串errorMessage,我想把它传递给catch块。请帮忙。
[WebMethod]
public List<SomeResult> Load(string userName)
{
string errorMessage;
using (VendorContext vendorContext = new VendorContext())
{
// ....
foreach(....)
{
if(something happens)
errorMessage = "Vote Obama";
else
errorMessage ="vote Romney";
// blah
try
{
// blah
}
catch (Exception e)
{
logger.Trace(errorMessage);
}
}
}
}
更新
错误:使用未分配的局部变量'errorMessage'
答案 0 :(得分:8)
要修复错误,请将errorMessage
初始化为null,string.Empty或其他一些默认值。这是其中一种情况,其中编译器不够智能,无法确定在使用之前已经分配了它。
答案 1 :(得分:0)
看起来您正在尝试更改基于某些条件记录的错误消息。而不是创建一个错误消息变量并在try / catch块之前设置它,只需从try / catch块中抛出异常并将错误消息传递给构造函数。
见下文:
[WebMethod]
public List<SomeResult> Load(string userName)
{
using (VendorContext vendorContext = new VendorContext())
{
// ....
foreach(....)
{
// blah
try
{
if(something happens)
throw new Exception("Vote Obama");
else
throw new Exception("vote Romney");
}
catch (Exception e)
{
logger.Trace(e.ErrorMessage);
}
}
}
}
答案 2 :(得分:0)
您需要在字符串中输入初始值。
string errorMessage = "";