第67回 正常系と異常系

正常系と異常系という言葉がある。


第66回 Perlでじゃんけんゲーム - bingo_nakanishiの他言語出身者のためのPerl入門
この前回のじゃんけんゲームを例に挙げて説明すると、
入力に関して言えば、
「グー、チョキ、パー」のいずれかが、入力された場合が正常系である。
対して、
「ぐー、ちょき、ぱー、G,H,P,1,2,3」などが入力された場合が異常系である。



前回のじゃんけんゲームのソース1から、

###################################
# 入力チェック
###################################
if( 1 != int @ARGV ){
  die '引数の数が正しくありません';
}

if( !( ( $ARGV[0] eq 'グー' )  ||
       ( $ARGV[0] eq 'チョキ') ||
       ( $ARGV[0] eq 'パー')
    )
){
  die q{引数は、'グー', 'チョキ', 'パー'でなければいけません};
}

の部分を抜いて、実行してみるとどうなるであろうか?

実行

$ perl janken.pl ぐー
人 : ぐー
COM: グー
あなたの  です

このように勝敗は表示されない。
これが異常系の例である。
じゃんけんゲームは勝敗を必ず返すように作りたかったので、これは異常な事態であるのだ。


こういったことをハンドリング(処理する)しているのが、
入力チェックの部分というわけである。

このような異常な事態をも考えプログラムは作る必要がある。

エラーとの関係性

なお、今回は、「異常系」という言葉を用いたが、
今回の異常系は、
第65回 「システムエラー」と「業務エラー」と「警告」 - bingo_nakanishiの他言語出身者のためのPerl入門
でいう「業務エラー」にあたるものだ。