欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Java異常處理中斷言的使用

 更新時間:2015年09月28日 16:53:47   投稿:goldensun  
這篇文章主要介紹了Java異常處理中斷言的使用,是Java入門學習中的基礎知識,需要的朋友可以參考下

斷言的概念

斷言用于證明和測試程序的假設,比如“這里的值大于 5”。
斷言可以在運行時從代碼中完全刪除,所以對代碼的運行速度沒有影響。
斷言的使用

斷言有兩種方法:
一種是 assert<<布爾表達式>> ;
另一種是 assert<<布爾表達式>> :<<細節(jié)描述>>。
如果布爾表達式的值為false , 將拋出AssertionError 異常; 細節(jié)描述是AssertionError異常的描述文本使用 javac –source 1.4 MyClass.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");
  }
}

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

 javac -source 1.4 AssertExample.java


以上程序運行使用斷言功能也需要使用額外的參數(shù)(并且需要一個數(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,因此斷言功能使得程序運行時拋出斷言錯誤,注意是錯誤, 這意味著程序發(fā)生嚴重錯誤并且將強制退出。斷言使用 boolean 值,如果其值不為 true 則 拋出 AssertionError 并終止程序的運行。
斷言推薦使用方法

用于驗證方法中的內部邏輯,包括:

  • 內在不變式
  • 控制流程不變式
  • 后置條件和類不變式

注意:不推薦用于公有方法內的前置條件的檢查。
運行時屏蔽斷言

運行時要屏蔽斷言,可以用如下方法:
    java –disableassertions 或 java –da 類名
運行時要允許斷言,可以用如下方法:
    java –enableassertions 或 java –ea類名

相關文章

  • Java泛型機制必要性及原理解析

    Java泛型機制必要性及原理解析

    這篇文章主要介紹了Java泛型機制必要性及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • SpringBoot使用Redis對用戶IP進行接口限流的項目實踐

    SpringBoot使用Redis對用戶IP進行接口限流的項目實踐

    本文主要介紹了SpringBoot使用Redis對用戶IP進行接口限流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Java對象數(shù)組定義與用法詳解

    Java對象數(shù)組定義與用法詳解

    這篇文章主要介紹了Java對象數(shù)組定義與用法,結合實例形式分析了java對象數(shù)組的概念、功能、定義與使用方法,需要的朋友可以參考下
    2019-08-08
  • Spring 框架中注入或替換方法實現(xiàn)

    Spring 框架中注入或替換方法實現(xiàn)

    這篇文章主要介紹了Spring 框架中注入或替換方法實現(xiàn),非常不錯,具有參考借鑒價值,感興趣的朋友跟隨腳本之家小編一起學習吧
    2018-05-05
  • java實現(xiàn)打磚塊游戲算法

    java實現(xiàn)打磚塊游戲算法

    這篇文章主要為大家詳細介紹了java實現(xiàn)打磚塊游戲算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 深入java對象復制的分析

    深入java對象復制的分析

    本篇文章是對java對象復制進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解Nacos中注冊中心和配置中心的實現(xiàn)

    詳解Nacos中注冊中心和配置中心的實現(xiàn)

    Spring?Cloud?Alibaba?是阿里巴巴提供的一站式微服務開發(fā)解決方案。而?Nacos?作為?Spring?Cloud?Alibaba?的核心組件之一,提供了兩個非常重要的功能:注冊中心和配置中心,我們今天來了解和實現(xiàn)一下二者
    2022-08-08
  • Java 無符號右移與右移運算符的使用介紹

    Java 無符號右移與右移運算符的使用介紹

    這篇文章主要介紹了Java 無符號右移與右移運算符的使用介紹,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • 使用Springboot實現(xiàn)健身房管理系統(tǒng)

    使用Springboot實現(xiàn)健身房管理系統(tǒng)

    這篇文章主要介紹了使用Springboot如何實現(xiàn)健身房管理系統(tǒng),希望對你有所幫助
    2021-07-07
  • 詳解springboot+mybatis-plue實現(xiàn)內置的CRUD使用詳情

    詳解springboot+mybatis-plue實現(xiàn)內置的CRUD使用詳情

    這篇文章主要介紹了詳解springboot+mybatis-plue實現(xiàn)內置的CRUD使用詳情,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論