初次使用try-catch遇到的问题
编译时出错:找不到类型或命名空间名称“example”(是否缺少 using 指令或程序集引用?)
但是如果将初始化语句改成UseException example=new UseException(1000);则可以抛出异常,去掉try-catch块后也可以运行。
我在CSDN上问了一下,得到的答复是
“因为你的example是在try块里面定义的,出了try块就被释放掉,执行到
Console.WriteLine("number={0}",example.SmallNum);
就会说找不到这个对象。
你初始值为1000,
if(num>100)
throw new ArgumentOutOfRangeException("输入值太大");
就会被抛出一个异常,能够被捕获到。”
并且看到了个解决方法,将try-catch结构改成:
null不能丢,否则一样报错。得到的解释是:
“在一个方法里,通过一个引用调用一个对象的方法(或属性)之前,此引用必须先被定义或赋值”
我觉得try-catch在在方面与函数类似。比如
c1.i的值可以被Test.fun方法所影响。当然,如果把c1.i的static去掉,再在fun里重新初始化一个对象,就不会被改动
浙公网安备 33010602011771号