<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 冷面閻羅 閱讀(174) 評(píng)論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲女人18毛片水真多| 亚洲成a人一区二区三区| 午夜免费福利视频| a成人毛片免费观看| 九九热久久免费视频| 中文字幕永久免费视频| 成人免费777777被爆出| 国产特黄一级一片免费| 久久国产精品免费| 全黄大全大色全免费大片| 东方aⅴ免费观看久久av| 久久免费视频精品| 8x8x华人永久免费视频| 中文字幕免费在线看线人 | 国产亚洲男人的天堂在线观看| 亚洲人成无码网站在线观看| 亚洲成aⅴ人片久青草影院按摩| 成人婷婷网色偷偷亚洲男人的天堂| 无码色偷偷亚洲国内自拍| 国产成人精品亚洲一区| 五月天婷婷精品免费视频| 精品国产呦系列在线观看免费| 91福利免费网站在线观看| 十九岁在线观看免费完整版电影| 日本免费一区二区三区| 91频在线观看免费大全| 成人免费毛片观看| 亚洲国产精品尤物yw在线| 亚洲一区二区三区偷拍女厕| 亚洲综合一区二区国产精品| 激情内射亚洲一区二区三区爱妻| 亚洲AV性色在线观看| 香蕉免费在线视频| 最近2018中文字幕免费视频| 成年女人免费视频播放体验区| 全亚洲最新黄色特级网站 | 暖暖在线日本免费中文| 久久久无码精品亚洲日韩软件| 2022年亚洲午夜一区二区福利| 亚洲а∨天堂久久精品9966| 亚洲精品黄色视频在线观看免费资源|