システムアーキテクト暗記無料で始める

アサーションとは?あさーしょん

アサーションとは、その地点で必ず成り立っているべき条件をコード中に宣言し、実行時に破れたら直ちに異常として止める仕組み。破れること自体をあってはならない事態=プログラムの誤りとして扱う点で、想定内の失敗を処理する例外処理とは役割が違う。事前条件・事後条件・不変条件の形で書けば、仕様の一部をコード上に残せる。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の過去問では2回出題されています(2019年度〜2024年度)。

システムアーキテクト試験の頻出用語/午前II

この語が出る過去問を解く →

背景

誤った状態は、混入した地点と症状が出る地点が離れるほど原因追跡が難しくなる。アサーションは誤りが入った瞬間で処理を止め、その距離をゼロに近づける道具である。バートランド・メイヤーが契約による設計(Eiffel)として体系化し、Javaのassert文やC言語のassertマクロとして現在も残っている。

具体例

残高更新の関数で、入口に「引落し額は正である」、出口に「残高は負にならない」を表明しておく。JavaのassertはVM起動時に-eaを付けたときだけ評価され、C言語のassertはNDEBUGを定義するとコンパイル時に消える構造になっている。

試験での引っ掛け

利用者入力の検証の代わりにはしない。入力の誤りは想定内の事象で、止めるのではなくエラーとして返すべきものだからである。また本番では無効化されることがあるため、副作用のある式(値を書き換える呼出しなど)をアサーションの中に書くと、有効時と無効時で挙動が変わる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2019年度〜2024年度)
  • 分野:午前II
  • 利用者入力の検証の代わりにはしない。