今天刷到一道题,题目是
AccessViolationException异常触发后,下列程序的输出结果为( );
static void Main(string[] args)
{
try
{
throw new AccessViolationException();
Console.WriteLine(“error1”);
}
catch (Exception e)
{
Console.WriteLine(“error2”);
}
Console.WriteLine(“error3”);
}
输出的是
error2
error3
我的理解是这样的,try…catch中,catch捕获到异常后,只要没有抛出异常语句(throw…),并不影响后续程序(try代码块中错误语句及其以后的代码不执行,catch及其以后正常执行)。
或者
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。 2.try{}中有异常,则异常下面代码不执行。 3.finally{}中代码必执行。
个人观点,欢迎指正