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

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

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

    冷面閻羅

    低調(diào)做人&&高調(diào)做事
    隨筆 - 208, 文章 - 3, 評(píng)論 - 593, 引用 - 0
    數(shù)據(jù)加載中……

    有關(guān)java的斷言

    源代碼:

    public class AssertExample {

      public static void main(String[] args) {
        int x = 10;
        if (args.length > 0) {
          try {
            x = Integer.parseInt(args[0]);
          } catch (NumberFormatException nfe) {
            /* Ignore */
          }
        }
        System.out.println("Testing assertion that x == 10");
        assert x == 10:"Our assertion failed";
        System.out.println("Test passed");
      }

    }

      由于引入了一個(gè)新的關(guān)鍵字,所以在編譯的時(shí)候就需要增加額外的參數(shù),要編譯成功,必須使用JDK1.4的javac并加上參數(shù)'-source 1.4',例如可以使用以下的命令編譯上面的代碼:

    javac -source 1.4 AssertExample.java

      以上程序運(yùn)行使用斷言功能也需要使用額外的參數(shù)(并且需要一個(gè)數(shù)字的命令行參數(shù)),例如:

    java -ea AssertExample 1

      程序的輸出為:

    Testing assertion that x == 10
    Exception in thread "main" java.lang.AssertionError:
    Our assertion failed
    at AssertExample.main(AssertExample.java:20)

      由于輸入的參數(shù)不等于10,因此斷言功能使得程序運(yùn)行時(shí)拋出斷言錯(cuò)誤,注意是錯(cuò)誤,這意味著程序發(fā)生嚴(yán)重錯(cuò)誤并且將強(qiáng)制退出。斷言使用boolean值,如果其值不為true則拋出AssertionError并終止程序的運(yùn)行。

     由于程序員的問(wèn)題,斷言的使用可能會(huì)帶來(lái)副作用,例如:

    boolean isEnable=false;
    //...
    assert isEnable=true;

      這個(gè)斷言的副作用是因?yàn)樗薷某绦蜃兞康闹挡⑶覜](méi)有拋出錯(cuò)誤,這樣的錯(cuò)誤如果不細(xì)心檢查很難發(fā)現(xiàn)。但是同時(shí)我們可以根據(jù)以上的副作用得到一個(gè)有用的特性,根據(jù)它測(cè)試是否將斷言打開(kāi)了。

    public class AssertExample2 {

      public static void main(String[] args) {
        boolean assertEnable=false;
        assert assertEnable=true;
        if (assertEnable==false){
          throw new RuntimeException("Assertions should be enable");
        }
      }

    }

      如果我們不使用-ea參數(shù)運(yùn)行上面的程序,則控制臺(tái)將輸出:

    Exception in thread "main" java.lang.RuntimeException:
    Assertions should be enab
    le
    at AssertExample.main(AssertExample.java:14)

    posted on 2007-04-05 08:58 冷面閻羅 閱讀(175) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲综合中文字幕无线码| 亚洲日本一区二区| 九九精品国产亚洲AV日韩| 男男AV纯肉无码免费播放无码 | 免费在线观看污网站| 亚洲av永久无码精品网址| 国产网站免费观看| 日韩在线视频免费| 国产精品亚洲综合专区片高清久久久 | 成人免费看吃奶视频网站| 亚洲中文字幕日本无线码| 在线观看成人免费| 色婷婷精品免费视频| 亚洲爽爽一区二区三区| 日韩av无码免费播放| 久久久久久亚洲AV无码专区| 69式国产真人免费视频| 亚洲色偷精品一区二区三区| 全黄a免费一级毛片人人爱| selaoban在线视频免费精品| 亚洲av综合av一区| 无码区日韩特区永久免费系列 | 免费鲁丝片一级在线观看| 国产亚洲男人的天堂在线观看 | 精品亚洲成a人片在线观看少妇| 免费观看的毛片大全| 日韩欧美亚洲国产精品字幕久久久| 亚洲Av无码国产情品久久| 最近国语视频在线观看免费播放| 亚洲人成电影在线天堂| 毛片免费vip会员在线看| 一级毛片aa高清免费观看| 久久亚洲国产精品成人AV秋霞 | 国产日韩一区二区三免费高清| 久久综合亚洲鲁鲁五月天| 国产男女猛烈无遮挡免费视频网站 | 99re在线免费视频| 国产精品亚洲一区二区在线观看| 亚洲色婷婷六月亚洲婷婷6月| 国产人在线成免费视频| 香蕉免费在线视频|