2016-10-26 2 views
1

В настоящее время я пишу небольшой скрипт python. Можно ли использовать break во время ExceptionError, как показано ниже? У меня есть 2 списка (a и b), и я пытаюсь передать одно значение из a в b каждый цикл.Можно ли использовать перерыв в обработке ошибок исключения в Python?

Вот код:

while True: 
    try: 
     b.append(a.pop(0)) 
    except IndexError: 
     print "a is empty !" 
     break 

    [...other code I don't wanna execute if I have an IndexError...] 

ли питон-говорящей "ОК", чтобы сделать, как это? Я имею в виду, это лучший способ в python выйти из цикла внутри ErrorException?

Спасибо, что потратили на это некоторое время!

+1

Вы получите эту ошибку, когда 'a' пуст. Кроме того, все в порядке. –

+0

Почему бы не 'while a:'? –

+1

@StefanPochmann Я думаю, что это технически быстрее. Блок try имеет более низкие накладные расходы, если не выбрасываются исключения, и это произойдет только один раз, в отличие от проверки каждого цикла. –

ответ

2

Как общий принцип, да, это нормально. Тем не менее, гораздо лучше сделать проверку такой простой, как это в условии цикла while:

while a: 
    b.append(a.pop(0)) 
Смежные вопросы