2016-12-07 4 views
1

をエラーしようとすると、ユーザーがないを行いますので、もし私が、私はエラーキャプションするいくつかのコードを必要とする問題が生じていますが、それは彼らが何か間違ったことをしたことを伝えなければならないを入力してください。以下は、私がエラーをキャプチャしたいと思うコードです、そして、私はこれを行う方法についてはわかりません。エラー表示をキャプチャ

 if cmd in ('L', 'LEFT'): 
      Left_position = (int(input("How many places would you like to move left"))) 
      if args: 
       step = int(args[0]) 
      else: 
       step = Left_position 
      y -= step 

答えて

0

この行:入力が整数に変換することができます文字列でない場合

Left_position = (int(input("How many places would you like to move left"))) 

がエラーをスローします。これをキャプチャするには、tryブロックで囲みます。

try: 
    Left_position = (int(input("How many places would you like to move left"))) 
except ValueError: 
    print('Error is handled here') 
if args: 
.... 
0

コードを少し並べ替えることをお勧めします。私が見る限り、実際にはargsが提供されていない場合にのみ、ユーザーに入力を求めたいと思っています。このような場合は、次のように動作するはずです:

if args: 
    step = int(args[0]) 
else: 
    while True: 
     try: 
      Left_position = (int(input("How many places would you like to move left"))) 
      break 
     except ValueError: 
      print 'This is not an integer! Please try again' 
    step = Left_position 
y -= step 

まずargsがある場合は、我々は最初の要素を使用して続けていきます。存在しない場合、ユーザに入力を提供するように要求される(潜在的に無限の)ループを入力する。これが整数としてラップ可能でない場合は、エラーメッセージが出力され、ユーザーは再び入力値を要求されます。これは、整数が提供されると終了します。入力によってエラーがスローされない場合にのみ、break行に到達できます。

関連する問題