空指针异常是运行期的异常,编译的时候是不会检查的,只有运行的时候才会抛出,一般情况下如果出现了空指针异常,事先你不知道会有这个异常,就说明你的程序有bug,当然就要找出这个bug,然后在变量调用之前先给它赋值,另外有一种情况,你事先知道某个操作会抛出空指针异常,常见一些非法的操作,但是又无法避免用户执行这个操作,就可以通过try,catch块捕获这个异常,然后给用户一个反馈信息,告知这个操作是非法的,因为如果你直接抛出异常的话,用户可能会看不懂,抛出了java.lang.null point exception,一般的软件使用者是看不懂的,你试想一下如果你在玩一个游戏的时候,忽然之间抛出了一大堆异常,你肯定会埋怨这个游戏垃圾,竟然会出现这样的低级错误。
java中空指针和值为空的区别
String s1 = null; // 空指针。 没有分配空间
String s2 = ""; // 值为空。 分配内存空间,存在值
s1.trim(); // 执行时程序会报空指针异常。
s2.trim(); // 执行正常。
java中空指针和值为空的区别
String s1 = null; // 空指针。 没有分配空间
String s2 = ""; // 值为空。 分配内存空间,存在值
s1.trim(); // 执行时程序会报空指针异常。
s2.trim(); // 执行正常。