【Python】自作例外処理で名前に数字を含む場合の例外を出力する

■概要

実装する処理の概要は以下の通り。

  • 独自の例外処理(※Exceptionを継承)を作成
  • 名前に数字を含むかの判定処理を作成
    • 名前に数字を含む場合:例外出力(対象の名前を出力)
    • 名前に数字を含まない場合:戻り値「0」を出力

※独自の例外処理については、Exceptionクラスを継承するのみ行う。

■フローチャート

・名前に数字を含むか確認する処理

開始
開始
名前を1文字ずつ繰り返し
名前を1文字ずつ繰り返し
数字
数字
あり
あり
なし
なし
名前に数字があるか確認
名前に数字があるか確認
戻り値:0
戻り値:0
例外出力
例外出力
終了
終了
Text is not SVG – cannot display

・メイン処理

開始
開始
チェック対象の名前リスト作成
チェック対象の名前リスト作成
名前リスト分繰り返し
名前リスト分繰り返し
終了
終了
Except
Except
例外対象の名前を出力
例外対象の名前を出力
Try
Try
名前に数字を含むか確認する処理
名前に数字を含むか確認する処理
Text is not SVG – cannot display

■サンプルコード


# 独自例外処理クラス:Exceptionを継承
class NameContainNumberException(Exception):
    pass


# 名前に数字を含むか確認する処理
def check_number_in_your_name(your_name):
    # 名前に数字を含むか判定
    is_your_name = any(chr.isdigit() for chr in your_name)
    
    # 数字あり
    if is_your_name:
        raise NameContainNumberException(your_name)
    # 数字なし
    else:
        return 0


# メイン処理
if __name__ == '__main__':
    # チェック対象の名前リスト
    sample_names = ['hoge', 'huga2', 'hoge3', 'huga']

    # 名前リスト分繰り返し
    for sample_name in sample_names:
        # 正常なら戻り値を出力
        try:
            print(check_number_in_your_name(sample_name))
            print('==========')
        # 異常なら対象の名前を出力
        except NameContainNumberException as ine:
            print(f'名前に数字が含まれています:{ine}')
            print('==========')

■実行結果

0
==========
名前に数字が含まれています:huga2
==========
名前に数字が含まれています:hoge3
==========
0
==========

コメント