我是靠谱客的博主 曾经外套,最近开发中收集的这篇文章主要介绍java中两大异常:空指针异常和数组越界异常,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、空指针异常

  空指针异常是运行期的异常,编译的时候是不会检查的,只有运行的时候才会抛出,一般情况下如果出现了空指针异常,事先你不知道会有这个异常,就说明你的程序有bug,当然就要找出这个bug,然后在变量调用之前先给它赋值,另外有一种情况,你事先知道某个操作会抛出空指针异常,常见一些非法的操作,但是又无法避免用户执行这个操作,就可以通过try,catch块捕获这个异常,然后给用户一个反馈信息,告知这个操作是非法的,因为如果你直接抛出异常的话,用户可能会看不懂,比如抛出了java.lang.NullPointerException,一般的软件使用者是看不懂的,你试想一下如果你在使用一个软件时时候,忽然之间抛出了一大堆异常,你肯定会埋怨这个软件,竟然会出现这样的低级错误。下面给大家举一个实例,是我前两天遇到过的一个空指针异常。
 
第一步:首先建一个学生类(我用的是eclipse)如下图:
属性是我自己随便定义的你可以自己修改,方法你可以自己写也可以用系统自动添加。在eclipseSource(点击)
第二步:建一个新的类如下图:
如果把该句注释掉以后会产生空指针异常(空指针)如下:

如果不注释就不会出现空指针异常.

出现上述的原因是因为你在实例化时没有达到上述的数组的长度,数组中的元素还有没有实例化完全。

 

上述例题中的完全代码如下哦!

学生类:

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中两大异常:空指针异常和数组越界异常所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部