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

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

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

斷言的概念

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

斷言有兩種方法:
一種是 assert<<布爾表達(dá)式>> ;
另一種是 assert<<布爾表達(dá)式>> :<<細(xì)節(jié)描述>>。
如果布爾表達(dá)式的值為false , 將拋出AssertionError 異常; 細(xì)節(jié)描述是AssertionError異常的描述文本使用 javac –source 1.4 MyClass.java 的方式進(jìn)行編譯示例如下:

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)行。
斷言推薦使用方法

用于驗(yàn)證方法中的內(nèi)部邏輯,包括:

  • 內(nèi)在不變式
  • 控制流程不變式
  • 后置條件和類不變式

注意:不推薦用于公有方法內(nèi)的前置條件的檢查。
運(yùn)行時(shí)屏蔽斷言

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

相關(guān)文章

  • IDEA 重新導(dǎo)入依賴maven 命令 reimport的方法

    IDEA 重新導(dǎo)入依賴maven 命令 reimport的方法

    這篇文章主要介紹了IDEA 重新導(dǎo)入依賴maven 命令 reimport的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 圖解Spring Security 中用戶是如何實(shí)現(xiàn)登錄的

    圖解Spring Security 中用戶是如何實(shí)現(xiàn)登錄的

    這篇文章主要介紹了圖解Spring Security 中用戶是如何實(shí)現(xiàn)登錄的,文中通過示例代碼和圖片介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java數(shù)組的特性_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java數(shù)組的特性_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    數(shù)組是基本上所有語言都會(huì)有的一種數(shù)據(jù)類型,它表示一組相同類型的數(shù)據(jù)的集合,具有固定的長(zhǎng)度,并且在內(nèi)存中占據(jù)連續(xù)的空間。在C,C++等語言中,數(shù)組的定義簡(jiǎn)潔清晰,而在Java中確有一些會(huì)讓人迷惑的特性。本文就嘗試分析這些特性
    2017-04-04
  • SpringBoot實(shí)現(xiàn)OneDrive文件上傳的詳細(xì)步驟

    SpringBoot實(shí)現(xiàn)OneDrive文件上傳的詳細(xì)步驟

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)OneDrive文件上傳的詳細(xì)步驟,文中通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家實(shí)現(xiàn)OneDrive文件上傳有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼

    Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼

    這篇文章主要介紹了Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 關(guān)于protected修飾符詳解-源于Cloneable接口

    關(guān)于protected修飾符詳解-源于Cloneable接口

    這篇文章主要介紹了protected修飾符詳解-源于Cloneable接口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot @Validated注解實(shí)現(xiàn)參數(shù)分組校驗(yàn)的方法實(shí)例

    SpringBoot @Validated注解實(shí)現(xiàn)參數(shù)分組校驗(yàn)的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于SpringBoot @Validated注解實(shí)現(xiàn)參數(shù)分組校驗(yàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java之 TreeSet的詳細(xì)使用說明

    Java之 TreeSet的詳細(xì)使用說明

    這篇文章主要介紹了Java之 TreeSet的詳細(xì)使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • springboot整合logback打印日志,分文件

    springboot整合logback打印日志,分文件

    本文主要介紹了springboot整合logback打印日志,分文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 詳解如何手動(dòng)將jar包安裝到本地Maven倉(cāng)庫中

    詳解如何手動(dòng)將jar包安裝到本地Maven倉(cāng)庫中

    在使用Maven構(gòu)建項(xiàng)目時(shí),有時(shí)會(huì)遇到需要將自己下載的JAR包添加到本地Maven倉(cāng)庫的情況,本文將詳細(xì)介紹如何手動(dòng)將JAR包安裝到本地Maven倉(cāng)庫中,希望對(duì)大家有一定的幫助
    2025-05-05

最新評(píng)論