概述
一、空指针异常
空指针异常是运行期的异常,编译的时候是不会检查的,只有运行的时候才会抛出,一般情况下如果出现了空指针异常,事先你不知道会有这个异常,就说明你的程序有bug,当然就要找出这个bug,然后在变量调用之前先给它赋值,另外有一种情况,你事先知道某个操作会抛出空指针异常,常见一些非法的操作,但是又无法避免用户执行这个操作,就可以通过try,catch块捕获这个异常,然后给用户一个反馈信息,告知这个操作是非法的,因为如果你直接抛出异常的话,用户可能会看不懂,比如抛出了java.lang.NullPointerException,一般的软件使用者是看不懂的,你试想一下如果你在使用一个软件时时候,忽然之间抛出了一大堆异常,你肯定会埋怨这个软件,竟然会出现这样的低级错误。下面给大家举一个实例,是我前两天遇到过的一个空指针异常。
第一步:首先建一个学生类(我用的是eclipse)如下图:
属性是我自己随便定义的你可以自己修改,方法你可以自己写也可以用系统自动添加。在eclipse中Source(点击)
第二步:建一个新的类如下图:
如果把该句注释掉以后会产生空指针异常(空指针)如下:
如果不注释就不会出现空指针异常.
出现上述的原因是因为你在实例化时没有达到上述的数组的长度,数组中的元素还有没有实例化完全。
上述例题中的完全代码如下哦!
学生类:
public class Student {
private String name;
private int age;
private int score;
private int lable;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public int getLable() {
return lable;
}
public void setLable(int lable) {
this.lable = lable;
}
}
SwitchTest来如下
public class SwithcTest {
public static void main (String args[]){
Student[] stuArr = new Student[10];
Student student = new Student();
//添加student1
student.setName("hans");
student.setAge(23);
student.setScore(60);
student.setLable(1);
stuArr[0] = student;
Student student1 = new Student();
//添加student2
student1.setName("rose");
student1.setAge(24);
student1.setScore(90);
student1.setLable(2);
stuArr[1] = student1;
Student student2 = new Student();
//添加student3
student2.setName("good");
student2.setAge(25);
student2.setScore(80);
student2.setLable(3);
stuArr[2] = student2;
for(int i = 0;i<stuArr.length;i++){
if (stuArr[i]!=null)//把该句注释掉以后会产生空指针异常(空指针)
System.out.println(stuArr[i].getLable()+"号"+ stuArr[i].getName()+"---"+ stuArr[i].getScore());
}
}
}
二、数组越界异常
举例:
你把第二个类代码中( Student[] stuArr = new Student[10];)10改成小于你实例化学生的个数0、1、2就会出现越界异常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Student.SwithcTest.main(SwithcTest.java:31)
注:下标从0开始,最大为 数组名.length 一定要注意哦!!!!!!!!!!
最后
以上就是曾经外套为你收集整理的java中两大异常:空指针异常和数组越界异常的全部内容,希望文章能够帮你解决java中两大异常:空指针异常和数组越界异常所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复