IAEは公開メソッドの事前条件チェックにおいてのみ使うべき。
事後条件、不変条件および非公開メソッドの事前条件はassertを使う。