抛出异常后我是否必须休息?

Ros*_*oss 21 .net c# exception break throw

我正在用C#编写一个自定义类,如果人们在某些方法中给出错误的输入,我会抛出几个例外.如果抛出异常,抛出后方法中的任何代码仍会被执行吗?我必须在投掷后休息一下,还是投掷总是退出方法?

JP *_*oto 32

当你抛出异常时,下一个要执行的代码是任何catch块,它覆盖方法中的抛出(如果有的话),finally块(如果有的话).你可以尝试一下,尝试捕捉,尝试捕捉终极或尝试终极.然后,如果未处理异常,由catch块重新抛出或根本没有捕获,则将控制权返回给调用者.例如,您将从此代码中获得"Yes1,Yes2,Yes3"...

try
{
    Console.WriteLine("Yes1");
    throw (new Exception());
    Console.WriteLine("No1");

}
catch
{
    Console.WriteLine("Yes2");
    throw;
    Console.WriteLine("No2");
}
finally
{
    Console.WriteLine("Yes3");
}

Console.WriteLine("No3");
Run Code Online (Sandbox Code Playgroud)


Jar*_*man 27

投掷将向上移动堆栈,从而退出该方法.

  • 谢谢.很抱歉问这样一个基本问题. (2认同)