首页 > 试题广场 >

AccessViolationException异常触发后,

[单选题]
AccessViolationException异常触发后,下列程序的输出结果为(      )
static void Main(string[] args)  
{  
    try  
    {  
        throw new AccessViolationException();  
        Console.WriteLine("error1");  
    }  
    catch (Exception e)  
    {  
        Console.WriteLine("error2");  
    }  
    Console.WriteLine("error3");  
} 


  • error2
    error3
  • error3
  • error2
  • error1
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。 2.try{}中有异常,则异常下面代码不执行。 3.finally{}中代码必执行。
发表于 2019-08-19 09:00:55 回复(18)
try{ //正常执行的代码 }catch (Exception e){ //出错后执行的代码 }finally{ //无论正常执行还是出错,之后都会执行的代码 } //跟上面try catch无关的代码 正常执行的代码如果出现异常,就不会执行出现异常语句后面的所有正常代码.
发表于 2019-08-16 02:09:23 回复(3)
首先,不知道是不是jdk1.7版本太低,找不到AccessViolationException这个异常。如果换作别的异常,编译是这样的:
其次,如果人工设置成非检查异常,题目答案是正确的:

最后,之所以有一部分朋友跟我一样选择C,是因为咱们以前遇到的题目是这样的:

个人理解是这样的,try..catch中,catch捕获到异常后,只要没有抛出异常语句(throw...),并不影响后续程序(try代码块中错误语句及其以后的代码不执行,catch及其以后正常执行)。个人观点,欢迎指正。
编辑于 2019-09-02 08:57:21 回复(4)
异常触发后,不执行后续语句,直接跳出try,执行catch
Console.WriteLine("error2"); 
如果有finally,则执行finally后程序结束;如果没有,执行catch外部后程序结束 Console.WriteLine("error3");  
发表于 2019-11-18 10:02:52 回复(3)
这个少写finally了吧,答案应该是error2
发表于 2019-08-16 08:30:51 回复(7)
 / * try catch:自己处理异常
  * try { 
  *可能出现异常的代码
  *} catch(异常类名A e){ 
  *如果出现了异常类A类型的异常,那么执行该代码
  *} ...(catch可以有多个)
  * finally { 
  *最终肯定必须要执行的代码(例如释放资源的代码)
  *}
  *代码执行的顺序:
  * 1.try内的代码从出现异常的那一行开始,中断执行
  * 2.执行对应的catch块内的代码
  * 3.继续执行try catch结构之后的代码
发表于 2020-03-28 10:57:10 回复(0)


被catch了的异常,不影响后面的执行
发表于 2019-11-04 14:58:07 回复(1)
只要catch语句块中没有return和throw语句,就会继续执行try-catch-finally之外的代码,所谓的遇到异常就不执行了,说的是try语句块中的代码。
发表于 2020-11-11 09:44:01 回复(0)
public class Main {
    public static void main(String[] args) {
        try {
            System.out.println(6/0);

        }catch (Exception o){
            System.out.println("error");
        }
        System.out.println("111");
    }
}
输出:
error
111

发表于 2019-08-18 09:40:21 回复(3)
每当答案有争议的时候,我就怀疑是360的题目,一看,果然是360公司的题目。。。。。
按道理发送异常后,try{}catch{}后面的代码不会执行才对啊
发表于 2020-08-14 11:07:46 回复(0)
catch 异常后就不影响正常程序输出了。
发表于 2019-08-30 22:43:13 回复(0)
因为已经被捕获到了,所以就会继续执行啊,除非还有异常发生,未被处理
发表于 2022-05-18 13:55:11 回复(0)
没这么复杂的,原因很简单,因为异常被捕获了,那就相当于正常运行啊。
不要觉得出现异常就是程序炸了,只有error才是炸了。
运行异常是正常的代码机制,就是另一种的if-else,出异常了一种走法,没出异常一种走法,仅此而已。
抛出异常相当于break,而捕获异常相当于continue。
发表于 2021-04-25 14:19:20 回复(0)
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。 2.try{}中有异常,则异常下面代码不执行。 3.finally{}中代码必执行。


异常触发后,不执行后续语句,直接跳出try,执行catch
Console.WriteLine("error2"); 
如果有finally,则执行finally后程序结束;如果没有,执行catch外部后程序结束 Console.WriteLine("error3");  

发表于 2020-06-15 23:11:46 回复(0)
Try出现异常,try块里生明异常下的代码永远不会被执行…
发表于 2022-02-12 01:06:45 回复(0)
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。 2.try{}中有异常,则异常下面代码不执行。 
3.finally{}中代码必执行。
发表于 2020-06-24 15:38:27 回复(0)

A


发表于 2019-08-19 21:14:22 回复(0)
发表于 2023-06-15 16:12:46 回复(1)
1.若catch(){}块中,如果有throw 语句,则,try{}catch(){} finally{}块之外的代码不执行;否则,执行。 2.try{}中有异常,则异常下面代码不执行。 3.finally{}中代码必执行。
发表于 2022-05-12 18:09:16 回复(0)
我刚开始也一看就是C,然后错了,我去执行了下类似的代码,才发现A才是对的,原因呢,很简单,catch后没有抛出异常,所有后面的语句会正常进行
发表于 2021-12-17 11:40:20 回复(0)