忍者ブログ

てんねんのSE備忘録

てんねんのためのSE備忘録 間違い指摘いただけると助かります また、拍手なんかしていただけると喜びます

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

java:assertステートメント

●assertステートメントとは
①J2SE1.4からの要素
②アサーション機能を実現するものとしてJava の言語仕様に加えられたもの

※アサーション(assertion)
→ソフトウェアが正しく動作することをより確実にするために使われる手法
→「各地点でこの条件が成立しているはず」
という検証用のコードをそれぞれの箇所に配置し違反を自動で検出

●assertステートメントの形式

/*
 *exp1が検証されるべき条件を記述するboolean 型の式
 *falseの場合アサーション違反となり,エラーAssertionErrorをスロー
 */
assert exp1;

/*
 *exp2はexp1の値がfalseとなってAssertionErrorオブジェクトが作られるときの
 *コンストラクタへのパラメタ(String)
 */
assert exp1 : exp2;

●assertステートメントの使用例
assertステートメント使用前
---------------------------------------------
if( sw == 0 ){
    aaaa();
} else {    //ここでsw > 0であるはず
    bbbb();
}
---------------------------------------------

assertステートメント使用後
---------------------------------------------
if( sw == 0 ){
    aaaa();
} else {    
    //sw > 0がfalseのとき「sw = swの値」を表示
    assert sw> 0 : "sw ="+sw;
    bbbb();
}
---------------------------------------------

AssertionErrorが出た場合のエラー
---------------------------------------------
AssertionError: sw = swの値
---------------------------------------------

●アサーションの種類
①事前条件
呼び出し元がメソッドに渡す引数が満たすべき条件
メソッドを呼び出されたときに引数をアサートする

②事後条件
メソッドの処理結果が満たすべき条件
メソッドが終わるときに処理結果をアサートする

③クラス不変条件
オブジェクトの内部状態が適切に保たれていることを示す条件
クラスの参照する場合に変数が変えられていないか、関数の前後でアサートする

●参考サイト
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a03_05.html

拍手[0回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

フリーエリア

最新CM

最新TB

プロフィール

HN:
てんねん
性別:
非公開

バーコード

ブログ内検索

P R

カウンター

忍者アナライズ