<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    洛神賦

    子虛烏有

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      7 Posts :: 10 Stories :: 0 Comments :: 0 Trackbacks

    java中兩大異常:空指針異常和越界異常

         前幾天我在學習java中遇到了幾個異常的問題其中就有兩個異常我認為有必要拿出來和大家分享一下,希望能為初學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    一定要注意哦?。。。。。。。。?!

     

    希望我上述所說的能給讀者帶來一點有用之處!!?。。。。。。。。?!

     

    我懂的只有這些了些網大家多多關注我的bolg,讓我們一起成長?。?!

    posted on 2010-10-08 21:18 洛神賦 閱讀(11885) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 456亚洲人成影院在线观| 亚洲日韩AV一区二区三区中文| 乱爱性全过程免费视频| 国产免费小视频在线观看| 亚洲精品无码专区在线播放| 成年美女黄网站色大免费视频| 亚洲人成77777在线观看网| 成年男女免费视频网站| 亚洲色大18成人网站WWW在线播放| 野花高清在线观看免费3中文| 日韩亚洲产在线观看| 青青草国产免费久久久91| 亚洲国产综合AV在线观看| 国产在线观看免费不卡| 成人精品综合免费视频| 国产日韩成人亚洲丁香婷婷| 精品成人免费自拍视频| 亚洲色成人网一二三区| 毛片A级毛片免费播放| 亚洲高清乱码午夜电影网| 亚洲日韩国产精品乱| 国产精品视频白浆免费视频| 亚洲首页在线观看| 免费人成视频在线| 色老头综合免费视频| 亚洲国产精品无码av| 成人免费福利视频| 美女视频免费看一区二区| 亚洲gv白嫩小受在线观看| 97在线线免费观看视频在线观看| 亚洲国产成人综合精品| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲av永久无码精品漫画 | 成人亚洲综合天堂| 免费成人在线视频观看| 精品亚洲国产成人| 亚洲香蕉网久久综合影视| 四虎最新永久免费视频| 午夜不卡AV免费| 亚洲成在人线电影天堂色| 全亚洲最新黄色特级网站|