doc.dev1x.org

バグったプログラムは即座に殺せ

1. 原則

バグったプログラムに処理を継続させてはならない

def main():
    data_list = get_data_list()

    for d in data_list:
        try:
            # 何かの処理
            # ...
        except:
            pass    # <-- エラーを握り潰してループを継続しようとしている

2. 根拠

デバッグが困難になる

処理結果の信頼性が低下する

3. 指針

エラーを検知した時点で処理を中断する

事前条件/事後条件を満たさない場合もエラーとして扱う

4. 注意事項

エラーの発生を織り込み済みで設計することもある

5. 関連パターン

参考資料

Appendix-1 事例集

事例1: 欠落情報の補填

事例2: 例外の隠蔽

事例3: 事後条件の不足