こんにちは、最近 Python でコーディングを始めましたが、エラーを処理する方法を知りたいと思っています。私はチュートリアルのdivintopythonを実行しましたが、そこで彼はraise errorを使用して、何がうまくいかないかをフィードバックします。ここで私のケース: 数値を表す文字列が 7 桁または 8 桁の長さであるかどうかをチェックする関数があります。
def checkNumber( someNumber ):
''' checks if Number is valid '''
someNumber = str(someNumber);
if not 6 < len(someNumber) < 9:
raise ValueError('number must be either 7 or 8')
if not re.search('^[0-9]{7,8}$', someNumber):
raise ValueError('only digits from 0...9')
sum = 0
if len(pzn) == 7: someNumber = '0' + someNumber
for n, a in list(enumerate(someNumber[:-1], start=1)):
sum += int(a)*n
if someNumber[-1]==str(sum%11):
return someNumber
else:
raise ValueError('not a vaild code')
この関数をスタンドアロンで使用していますが、バーコードをスキャンし、この関数を呼び出してコードを検証する他の関数からも呼び出します。したがって、スキャン番号が正しい場合は続行し、そうでない場合はスキャンを続行する必要があります。私のようにそれを行い、try/except ブロックをスキャナー関数に入れる方が良いですか、それとも False を返す必要がありますか?
どうもありがとう