62,625
社区成员
发帖
与我相关
我的任务
分享
public void foo(@NotNull Object obj) {
/*
* 当你这么写的时候,你要求了obj是非空的
* 但是NotNull是一个Runtime的注解,不在编译的时候检测
* 因此当有人传入一个null时便抛出了NullPointerException
*/
System.out.println(obj.toString());
}
当遇到了RuntimeException时JVM会用默认的方法对其进行处理。
而Exception则是则是代码不可控的,比如你建立了一个网络连接开始传输文件,传输到一半突然断网了,这个情况是不可预料的,此时会抛出IOException,你应该给出一个解决方案,告诉程序怎么处理。
自己设计Exception时,遵循这样的规则会比较好。