Discuss / Java / 似懂非懂

似懂非懂

Topic source

public class Main {

public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
String name = "Xiao Ming";
int age = 20;
Person p = new Person();
// TODO: 利用反射给name和age字段赋值:
Class c = p.getClass();
Field f = c.getDeclaredField("name");
Field f1 = c.getDeclaredField("age");
f.setAccessible(true);
f1.setAccessible(true);
f.set(p, "Xiao Ming");
f1.set(p, 20);

System.out.println(p.getName()); // "Xiao Ming"
System.out.println(p.getAge()); // 20
}
}

你好,我想问一下,为什么把异常抛出就能正常显示结果了。。不理解。

再次看 懂了 看看前面的异常

编译异常有2中处理方式 一种为 直接抛出

Best of Me

#6 Created at ... [Delete] [Delete and Lock User]

前面廖老师有说到

如果是测试代码,上面的写法就略显麻烦。如果不想写任何try代码,可以直接把main()方法定义为throws Exception:因为main()方法声明了可能抛出Exception,也就声明了可能抛出所有的Exception,因此在内部就无需捕获了。代价就是一旦发生异常,程序会立刻退出。


  • 1

Reply