2017-03-26 11 views
1

現在、私はこれを持っている:tryステートメントの例外を指定することはできますか?

try: 
    number = int(input('Please enter a number greater than 20')) 
    if number > 20: 
     print(number) 
except ValueError: 
    print('We encountered an error. Please try again.') 

は、tryの中にif文を統合する方法はありますか?基本的には、入力が20よりも大きくない場合は、ValueError行を除きます。私は、try文がどのように動作するのか理解していますが、実際には単純なものにしか使えないので、読んでみるとちょっと混乱しました。どんな助けでも大歓迎です。

+1

'もし数<= 20:ValueErrorを送出し()' – AChampion

+0

はどこ?そして、私はカッコ内に何かを指定しますか? – Anya

+0

**フロー制御に例外を使用しないでください。** –

答えて

2

をしてraise ValueError()

try: 
    number = int(input('Please enter a number greater than 20')) 
    if number <= 20: 
     raise ValueError() 
    print(number) 
except ValueError: 
    print('We encountered an error. Please try again.') 

Value('Value <= 20')のメッセージをコンストラクタに置くことができますが、メッセージはexcept句には表示されませんので、必要はありません。
あなたは永遠にループでこれをラップすることができます:

while True: 
    try: 
     number = int(input('Please enter a number greater than 20')) 
     if number <= 20: 
      raise ValueError() 
     print(number) 
    except ValueError: 
     print('We encountered an error. Please try again.') 
    else: 
     break 
0

次のようにtryブロック内とValueError例外をスロー/上げることができる:あなたの番号が無効である場合は、あなたの周りのロジックとテストを変更することができます

Manually raising (throwing) an exception in Python

+0

これを行うコードを指定してください。 –

+0

優秀な投稿を引用して、私は 'ValueErrorを上げました('非常に具体的な悪いことが起きました ')。 – Mark

+0

AChampionは正しいです。 – Mark

関連する問題