好的,我想要一些意见,我该如何解决这个混乱的方法!
它有很多嵌套的“if”语句。
但是意识到我必须确切地知道方法失败的地方,目前在每个相应的“else”子句中我正在记录错误(失败的“if”条件)。
注意:忽略事物背后的任何逻辑,请关注样式和结构,因为我已经整理了所有函数名称等。
这是骨架结构:
public void MyMethod()
{
try
{
bool tryAgain = false;
string filename = DownloadFile();
if( IsFileFormatOk(filename) )
{
blah = GetBlah(filename);
if(blah.ID > 0)
{
if(ImportFile(filename)
{
string username = GetUserFromFile(filename);
if(isValidUser(username))
{
// few more levels to go
//
//
//
}
else
{
LogError(filename, ...); // specific to this if statement
tryAgain = true;
}
}
else
{
LogError(filename, ...); // specific to this if statement
tryAgain = true;
}
}
else
{
LogError(filename, ...); // specific to this if statement
tryAgain = true;
}
}
else
{
LogError(filename, ...); // specific to this if statement
tryAgain = true;
}
}
catch
{
}
finally
{
if(tryAgain)
{
// blah
}
}
}