引言
大家可能遇到这种情况,每一步函数调用都要判断返回结果是否正常顺序执行下一步。如下举例
csharp
public static bool step1()
{
return true;
}
public static bool step2()
{
return true;
}
public static bool step3()
{
return false;
}
public static bool step4()
{
return true;
}
public static void Main()
{
if (!step1())
{
Console.WriteLine("step1 fail!");
return;
}
if (!step2())
{
Console.WriteLine("step2 fail!");
return;
}
if (!step3())
{
Console.WriteLine("step3 fail!");
return;
}
if (!step4())
{
Console.WriteLine("step4 fail!");
return;
}
Console.WriteLine("All step ok!");
}
这样调用频繁判断不够简洁美观并麻烦。
可以使用抛异常方式中断当前main函数,自定义记录异常信息。
csharp
public static bool step3()
{
throw new MyException("step3步骤执行失败");
return false;
}
public static bool step4()
{
return true;
}
class MyException : Exception
{
public MyException(string message) : base(message)
{
}
}
public static void Main()
{
try
{
step1();
step2();
step3();
step4();
Console.WriteLine("All steps ok!");
}
catch (MyException ee)
{
Console.WriteLine(ee?.ToString()?? "step failed!");
}
}