2012-05-22 2 views
-2

Я новичок в программировании на python. Возможно возводить исключение в python без использования try except block (or) только с исключением (или) только с блоком try.поднять ключевое слово в python?

Благодаря Mukthyar

+1

@marc_s Я говорил ему много раз, но, похоже, ему не кажется, что в один прекрасный день никто больше ему не поможет. – glglgl

ответ

2

Вам не нужно быть в try..except блоке, но когда вы поднимаете исключение, вы всегда хотите, чтобы поймать его и обработать его где-то в вашем коде. Это использование блока try..except. Вам нужно будет использовать его где-нибудь в своем коде для обработки выделенного исключения, иначе исключение остановит выполнение вашей программы.

2

Прочитайте документацию по Errors and Exceptions, особенно Raising Exceptions section

raise заявление позволяет программисту заставить указанный исключение произойдет. Например:

>>> 
>>> raise NameError('HiThere') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
NameError: HiThere 
+0

Это хороший совет, но он лучше всего подходит для комментариев к вопросу. Ответы должны отвечать на заданный вопрос. Это просто представляет ссылку за пределы сайта. [Faq] (http://stackoverflow.com/faq#deletion) говорит немного больше и, в частности, вызывает ответы, которые являются «чуть больше, чем ссылка на внешний сайт» как склонная к удалению. –

+0

@DavidHeffernan: это не настоящий вопрос, так или иначе ... – vartec

+0

Итак, вы проголосовали за закрытие как не настоящий вопрос, но затем все равно ответили. Странно. –

1

Вам не нужно находиться внутри блока try/except, чтобы создать исключение. С другой стороны, если вы хотите поймать и обработать исключение, вам нужно использовать блок try/except.

Синтаксическая ошибка: написать try без except или finally. Или действительно написать except без его соответствия try. Эти языковые конструкции неразрывно связаны.

3

Вы можете создать исключение в любой точке вашего кода, и оно выйдет из всех функций, идущих вверх по цепочке вызовов, до тех пор, пока не будет получен соответствующий блок. Вам не обязательно быть внутри блок попыток до raise исключение - только для того, чтобы поймать его.

Полный набор вещей, которые вы можете иметь на попытку блока выглядит следующим образом:

try: 
    ... 
except A: 
    ... 
except B: 
    ... 
else: 
    ... 
finally: 
    ... 

Вы можете найти полное определение всех этих в документации, но я думаю, что немного вы спрашиваете о том, можете ли вы иметь except: без try: - вы не можете. try: является обязательным в вышеуказанном, и вам нужен хотя бы один из других, но он может быть любым из них (и у вас может быть более одного, в том числе и достаточно много except:).

Смежные вопросы