Java中不常用的關鍵字assert

assert的基本用法

轉載地址:https://www.cnblogs.com/wardensky/p/4307848.html

assertion(斷言)在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制,如C,C++和Eiffel等,但是支持的形式不盡相同,有的是通過語言本身、有的是通過庫函數等。另外,從理論上來說,通過assertion方式可以證明程序的正確性,但是這是一項相當複雜的工作,目前還沒有太多的實踐意義。

在實現中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值爲true;如果該值爲false,說明程序已經處於不正確的狀態下,系統將給出警告並且退出。一般來說,assertion用於保證程序最基本、關鍵的正確性。assertion檢查通常在開發和測試時開啓。爲了提高性能,在軟件發佈後,assertion檢查通常是關閉的。下面簡單介紹一下Java中assertion的實現。

在語法上,爲了支持assertion,Java增加了一個關鍵字assert。它包括兩種表達式,分別如下:

1. assert expression1;
2. assert expression1: expression2;
    

expression1表示一個boolean表達式,expression2表示一個基本類型、表達式或者是一個Object,用於在失敗時輸出錯誤信息。

在運行時,如果關閉了assertion功能,這些語句將不起任何作用。如果打開了assertion功能,那麼expression1的值將被計算,如果它的值爲false,該語句強拋出一個AssertionError對象。

示例代碼如下:

package com.chzhao.test;

public class AssertDemo {

    public static void main(String[] args) {
        
        test1(-5);
        test2(-3);
    }
    
    private static void test1(int a){
        assert a > 0;
        System.out.println(a);
    }
    private static void test2(int a){
        assert a > 0 : "something goes wrong here, a cannot be less than 0";
        System.out.println(a);
    }
}

eclipse的相關設置

在eclipse中,必須開啓相關設置。具體在偏好設置,選擇Installed JREs,選擇相關版本,點擊edit,在Default VM arguments裏面輸入-ea就可以了。ea:enable assertions


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章