Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python

Python Traceback β€” Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки Π² ΠΊΠΎΠ΄Π΅

Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π€ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python

Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π€ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python

Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ трассировку (Π΄Π°Π»Π΅Π΅ traceback), ΠΊΠΎΠ³Π΄Π° Π² вашСм ΠΊΠΎΠ΄Π΅ появляСтся ошибка. Π’Ρ‹Π²ΠΎΠ΄ traceback ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ, Ссли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ вас хотят. Однако traceback Python содСрТит ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² вашСм ΠΊΠΎΠ΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ прСдоставляСт traceback Python являСтся ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΌ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ Python программистом.

К ΠΊΠΎΠ½Ρ†Ρƒ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ смоТСтС:

Python Traceback β€” Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ трассировку?

Traceback (трассировка) β€” это ΠΎΡ‚Ρ‡Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² вашСм ΠΊΠΎΠ΄Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Π•ΡΡ‚ΡŒ вопросы ΠΏΠΎ Python?

На нашСм Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ всСго нашСго сообщСства!

Telegram Π§Π°Ρ‚ & Канал

ВступитС Π² наш Π΄Ρ€ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ ΠΏΠΎ Python ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ большого сообщСства!

Паблик VK

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сообщСств ΠΏΠΎ Python Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π’Πš. Π’ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ для вас!

Traceback Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ трассировка стэка, обратная трассировка, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ β€œΡ‚Ρ€Π°ΡΡΠΈΡ€ΠΎΠ²ΠΊΠ°β€.

Когда ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ трассировку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. НиТС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ подразумСваСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ прСдставлСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Python. Если это Π²Π°ΠΌ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΠΎ, ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ: ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π² Python

Когда Π²Ρ‹ запускаСтС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ трассировку:

Π­Ρ‚Π° Π²Ρ‹Π΄Π°Ρ‡Π° ΠΈΠ· traceback содСрТит массу ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π²Π°ΠΌ понадобится для опрСдСлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ПослСдняя строка трассировки Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ошибки Π²ΠΎΠ·Π½ΠΈΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ рСлСвантная информация ΠΎΠ± ошибкС. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ строки ΠΈΠ· traceback ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΊΠΎΠ΄, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

Python Traceback β€” Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² Ρ‡Π΅ΠΌ ошибка?

Врассировка Python содСрТит массу ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ошибки, возникшСй Π² вашСм ΠΊΠΎΠ΄Π΅. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ traceback, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отличия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, содСрТащСйся Π² traceback.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ структуры трассировки Π² Python 3

БущСствуСт нСсколько сСкций для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ трассировки Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅ описываСт нСсколько частСй:

Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π€ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python

Π’ Python Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ трассировку снизу Π²Π²Π΅Ρ€Ρ….

Π•ΡΡ‚ΡŒ ряд ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ трассировок, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСт ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ запуском ΠΊΠΎΠ΄Π° Π² REPL. НиТС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² REPL ΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ трассировки:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ

Ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Python ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ синтаксис этого языка, Ρ‚ΠΎ ΠΏΡ€ΠΈ запускС своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько ошибок. Python сообщит Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ выдаст ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ошибкС. ВзглянитС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π² Python Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ строку с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΎΠΉ стороны.

Π­Ρ‚ΠΎ сообщСниС ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. БинтаксичСскиС ошибки Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹; ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, содСрТащая ΠΈΡ…, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Когда Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с синтаксичСской ошибкой, Python сообщаСт ΠΎΠ± этом.

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ расскаТСт Π²Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π±Ρ‹Π»Π° ошибка, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ½Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° строкС, ΠΈ Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»Π° Π·Π° ошибка. Π₯отя ошибки ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌΠΈ, ΠΎΠ½ΠΈ ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ постоянно.

Если Π² вашСм ΠΊΠΎΠ΄Π΅ Π±Ρ‹Π»Π° Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° ошибка, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΠΎΠΌΠ΅Ρ€Ρƒ строки ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС. Если Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π½Π΅ΠΉ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ, Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° содСрТит лишь ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ строки ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π£ Python Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ошибок: синтаксичСскиС ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ называСтся любая ошибка, которая Π½Π΅ являСтся синтаксичСской. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ синтаксичСских ошибок, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹.

ZeroDivisionError β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ дСлСния Π½Π° ноль ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π² случаС Ссли Π²Π°ΠΌΠΈ, ΠΊΠ°ΠΊ программистом, Π½Π΅ прСдусмотрСно ограничСния Ρ‚Π°ΠΊΠΎΠΉ возмоТности.

Π’ процСссС обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ часто ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ синтаксичСскиС ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΡ… количСство снизится. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с синтаксичСской ошибкой ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ строкС, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Π²ΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ Π² Π½Π΅Π΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ написали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π²Π° числа ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ числа Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Однако Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ 0 Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа, Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ошибкой:

НСльзя просто Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Π²Π΅Π΄Π΅Ρ‚ 0 ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ способом Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полоТСния ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ β€” инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Β«ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒΒ» ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС.

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова try ΠΈ except. ΠŸΡ€ΠΈ использовании ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ числом Π²Π²ΠΎΠ΄ΠΈΡ‚ 0, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ вывСсти ΠΈΠΌ сообщСниС ΠΎ нСдопустимости Π²Π²ΠΎΠ΄Π° нуля.

ВсС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Python ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Бписок встроСнных ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь. Если Π²Π°ΠΌ каТСтся, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΡΡ‚Π°Π²Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами try ΠΈ except, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Π‘Π»ΠΎΠΊ try содСрТит ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π‘Π»ΠΎΠΊ except содСрТит ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ лишь Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° try появится ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ прСрываСтся ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ 0 Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа.

Вакая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ZeroDivisionError ΠΈ пСрСдаст ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π±Π»ΠΎΠΊ except, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ сообщСниС ΠΎ нСдопустимости Π²Π²ΠΎΠ΄Π° 0.

Π’Π°ΡˆΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Python Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠ΅ число. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ввСсти вмСсто числа ΠΊΠ°ΠΊΠΎΠ΅β€‘Π½ΠΈΠ±ΡƒΠ΄ΡŒ слово ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сообщСниС ΠΎΠ± ошибкС:

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΠ² ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² инструкции except ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² try, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° пСрСмСнная, ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ except, Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅ сгСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ЗначСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ ошибок Π² Python

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, защищая Π΅Π³ΠΎ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сбоСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π€ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π°, ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ встроСнныС Π² Python ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ тонкая Π³Ρ€Π°Π½ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ понятиями ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ отказоустойчивым ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ остановкС выполнСния. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ, Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ·-Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚, поэтому стоит Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Ρ€Π°Π·Π±Π΅Ρ€ΠΈΡ…ΠΈ.

Ошибки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ²:

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΈΡ… ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

БинтаксичСскиС ошибки (SyntaxError)

БинтаксичСскиС ошибки часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ошибками Ρ€Π°Π·Π±ΠΎΡ€Π°. Они Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² ΠΊΠΎΠ΄Π΅.

Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π²Π΅Ρ€Ρ…Ρƒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° мСсто, Π³Π΄Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ исполнСния. Π—Π½Π°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄ стрСлкой ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Для устранСния Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок Python Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π° программиста, выводя Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки, Π³Π΄Π΅ Π±Ρ‹Π»Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ошибка.

НСдостаточно памяти (OutofMemoryError)

Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈΠ· языка C (функция malloc() ), Π½Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ всС процСссы восстановятся β€” Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях MemoryError ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ остановкС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ошибки Π½Π΅ рСкомСндуСтся, ΠΈ это Π½Π΅ считаСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.

Ошибка рСкурсии (RecursionError)

Π­Ρ‚Π° ошибка связана со стСком ΠΈ происходит ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Как ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ошибка рСкурсии Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° исполняСтся ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” с бСсконСчной рСкурсиСй), Π½ΠΎ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ стСка.

ВсС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² стСкС. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создаСтся стСковый ΠΊΠ°Π΄Ρ€ (Ρ„Ρ€Π΅ΠΉΠΌ), Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Когда исполнСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, Π΅Π³ΠΎ элСмСнт удаляСтся.

Ошибка отступа (IndentationError)

Π­Ρ‚Π° ошибка ΠΏΠΎΡ…ΠΎΠΆΠ° ΠΏΠΎ Π΄ΡƒΡ…Ρƒ Π½Π° ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈ являСтся Π΅Π΅ ΠΏΠΎΠ΄Π²ΠΈΠ΄ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с отступами.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π”Π°ΠΆΠ΅ Ссли синтаксис Π² инструкции ΠΈΠ»ΠΈ само Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½Ρ‹, ΠΎΠ½ΠΈ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΏΡ€ΠΈ исполнСнии. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Python β€” это ошибки, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ исполнСнии, Π½ΠΎ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ критичСскими. Π‘ΠΊΠΎΡ€ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Python. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ создаСтся ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Python. Если скрипт Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ явно, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ остановлСна ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ сообщСниям ΠΎΠ± ошибкС:

Ошибка Ρ‚ΠΈΠΏΠ° (TypeError)

Ошибка дСлСния на ноль (ZeroDivisionError)

ΠžΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒ строки с ошибкой ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ подробности ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ошибки Π½Π° основС Π΅Π΅ Ρ‚ΠΈΠΏΠ°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим встроСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Python.

ВстроСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Π±ΠΎΡ€Ρƒ встроСнных ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ быстро вспомним 4 основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° этой схСмС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ руководства большС ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± ΠΎΠ±Ρ‰ΠΈΡ… Ρ‚ΠΈΠΏΠ°Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Ошибка прСрывания с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (KeyboardInterrupt)

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ KeyboardInterrupt вызываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сочСтания Ctrl + C ΠΈΠ»ΠΈ Ctrl + Z Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈΠ»ΠΈ ядрС Π² Jupyter Notebook. Иногда это происходит Π½Π΅ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎ ΠΈ подобная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуаций.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ошибки (StandardError)

Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ошибки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

АрифмСтичСскиС ошибки (ArithmeticError)

ВсС пСрСчислСнныС Π²Ρ‹ΡˆΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ относятся ΠΊ классу Arithmetic ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² арифмСтичСских опСрациях.

Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль (ZeroDivisionError)

Когда Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлСния) ΠΈΠ»ΠΈ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŒ Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎΠ³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ошибка дСлСния Π½Π° ноль.

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (OverflowError)

Ошибка ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ вызываСтся, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Она Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° для Ρ†Π΅Π»Ρ‹Ρ… чисСл Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Ошибка утвСрТдСния (AssertionError)

Когда инструкция утвСрТдСния Π½Π΅ Π²Π΅Ρ€Π½Π°, вызываСтся ошибка утвСрТдСния.

Ошибка Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (AttributeError)

Ошибка ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° (ModuleNotFoundError)

Ошибка ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° вызываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ (ΠΈΠ»ΠΈ нСспособный Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ) ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² стандартном ΠΏΡƒΡ‚ΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ошибкС Π² ΠΈΠΌΠ΅Π½ΠΈ.

Ошибка поиска (LookupError)

LockupError выступаСт Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходят, ΠΊΠΎΠ³Π΄Π° key ΠΈΠ»ΠΈ index ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для связывания ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ списка/словаря Π½Π΅Π²Π΅Ρ€Π½Π° ΠΈΠ»ΠΈ Π½Π΅ сущСствуСт.

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ:

Ошибка ΠΊΠ»ΡŽΡ‡Π°

Ошибка индСкса

Если ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ индСксу (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ) списка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ сущСствуСт Π² этом спискС ΠΈΠ»ΠΈ находится Π²Π½Π΅ Π΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° ошибка индСкса (IndexError: list index out of range python).

Ошибка памяти (MemoryError)

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, ошибка памяти вызываСтся, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ памяти для выполнСния.

Ошибка имСни (NameError)

Ошибка ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° локальноС ΠΈΠ»ΠΈ глобальноС имя Π½Π΅ находится.

Ошибка выполнСния (Runtime Error)

Ошибка Ρ‚ΠΈΠΏΠ° (TypeError)

Ошибка Ρ‚ΠΈΠΏΠ° вызываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° нСсовмСстимых ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ строкС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС Ρ‚ΠΈΠΏΠ°.

Ошибка значСния (ValueError)

Ошибка значСния вызываСтся, ΠΊΠΎΠ³Π΄Π° встроСнная опСрация ΠΈΠ»ΠΈ функция ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ с ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, Π½ΠΎ нСдопустимым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ встроСнная опСрация float ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), Ρ‡Ρ‚ΠΎ являСтся нСдопустимым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ для Ρ‚ΠΈΠΏΠ°: число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Python

Π’ Python Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ встроСнных ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ для использования Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Но ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС со своими сообщСниями для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, создав Π½ΠΎΠ²Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· класса Exception Π² Python.

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ссли ввСсти Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ мСньшС 1, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. МногиС стандартныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡŽΡ‚ собствСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

НСдостатки ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Python

Π£ использования ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π΅ΡΡ‚ΡŒ свои ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ try-except Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π° количСство ΠΊΠΎΠ΄Π° возрастаСт.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стоит ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ использованиС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Python ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅Π΄ΠΊΠΈΡ… случаях. НапримСр, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΎΠΌ: Ρ†Π΅Π»ΠΎΠ΅ ΠΈΠ»ΠΈ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΈΠ»ΠΈ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹!

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ отказоустойчивым.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ простая концСпция, построСнная всСго Π½Π° 4 Π±Π»ΠΎΠΊΠ°Ρ…: try выискиваСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π° except ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚.

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ Π² ΠΈΡ… использовании, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ отказоустойчивым.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Traceback Π² Python

Python ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ трассировку (traceback) ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² вашСм ΠΊΠΎΠ΄Π΅. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ трассировки ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ, Ссли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΅Π΅ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΈΠ»ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ½Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚. Но трассировка содСрТит мноТСство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

К ΠΊΠΎΠ½Ρ†Ρƒ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ смоТСтС:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Traceback Π² Python?

Врассировка (Traceback) β€” это ΠΎΡ‚Ρ‡Π΅Ρ‚, содСрТащий Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, сдСланныС Π² вашСм ΠΊΠΎΠ΄Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Врассировка извСстна ΠΏΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ stack trace (трассировку стСка), stack traceback (трассировку стСка), backtrace (ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ трассировку) ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ traceback.

Когда ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Python ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ трассировку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ:

Π—Π΄Π΅ΡΡŒ вызываСтся функция greet() с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ someone. Однако Π² greet() это имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. ВмСсто этого Π±Ρ‹Π»ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ пСрСмСнная someon Π² Π²Ρ‹Π·ΠΎΠ²Π΅ print().

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ этом руководствС прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Python. Если Π²Ρ‹ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹ ΠΈΠ»ΠΈ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Python Exceptions: Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

Когда Π²Ρ‹ запуститС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ traceback:

Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄ traceback содСрТит всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ПослСдняя строка Π²Ρ‹Π²ΠΎΠ΄Π° сообщаСт Π²Π°ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Ρ‹Π» сгСнСрирован вмСстС с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± этом ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ строки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ возникновСнию ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ traceback ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π» NameError, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ имССтся ссылка Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ имя (пСрСмСнная, функция, класс), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использовано имя β€” someon.

Π’ послСднСй строкС Π² этом случаС достаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Поиск ΠΊΠΎΠ΄Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ someon, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся орфографичСской ошибкой, ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. Однако часто ваш ΠΊΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Traceback?

Врассировка содСрТит ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² вашСм ΠΊΠΎΠ΄Π΅. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ трассировок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, какая информация содСрТится Π² Π½ΠΈΡ….

ΠžΠ±Π·ΠΎΡ€ Traceback

Π•ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ трассировки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ своСму Π²Π°ΠΆΠ½Ρ‹. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅ выдСляСт эти части:

Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python. Π€ΠΎΡ‚ΠΎ Traceback most recent call last Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ python

Π’ Python Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ трассировку снизу Π²Π²Π΅Ρ€Ρ…:

Π•ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ трассировки, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ выполняСтС свой ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ выполняСтС ΠΊΠΎΠ΄ Π² REPL. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π² REPL, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ трассировки:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ трассировки стСка Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ сущСствСнноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ выглядит трассировка Π² Python. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ свСрху, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄ΡƒΡ‚ свСрху Π²Π½ΠΈΠ·, самыС послСдниС Π²Ρ‹Π·ΠΎΠ²Ρ‹ β€” Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ чтСния трассировки

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² трассировки ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Π°ΠΌ прСдоставит трассировка.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдоставляСт Π²Π°ΠΌ трассировка:

Π—Π΄Π΅ΡΡŒ who_to_greet() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ person ΠΈ Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π—Π°Ρ‚Π΅ΠΌ greet() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, someone, ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ greeting ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ print(). who_to_greet() Ρ‚Π°ΠΊΠΆΠ΅ вызываСтся с ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ someone.

НаконСц, greet_many() Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ список people ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ greet(). Если ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ greet() Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ выводится простоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ привСтствиС.

Π’ этом ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚ ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ привСсти ΠΊ возникновСнию ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли прСдоставлСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π²ΠΎΠ΄.

Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² greet() Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° greetings.py ΠΈ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, greet(β€˜Chad’, greting = β€˜Yo’)), Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Π•Ρ‰Π΅ Ρ€Π°Π·, с трассировкой Python, Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, двигаясь Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρƒ. Начиная с послСднСй строки трассировки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся TypeError. БообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° Ρ‚ΠΈΠΏΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, всС Ρ‡Ρ‚ΠΎ послС двоСточия, Π΄Π°ΡŽΡ‚ Π²Π°ΠΌ Π²Π°ΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Оно Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ greet() Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π». Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π½ΠΎ нСизвСстноС имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°: greting.

Π”Π²ΠΈΠ³Π°ΡΡΡŒ Π²Π²Π΅Ρ€Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ строку, которая ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это Π²Ρ‹Π·ΠΎΠ² greet(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ† greetings.py.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сущСствуСт ΠΊΠΎΠ΄, Π½ΠΎΠΌΠ΅Ρ€ строки этого Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ΄, ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ находится. Π’ этом случаС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ наш ΠΊΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python ΠΌΡ‹ просто Π²ΠΈΠ΄ΠΈΠΌ здСсь, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это исполняСмый Ρ„Π°ΠΉΠ».

Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ трассировка Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Если Π²Ρ‹ слСдуСтС дальшС, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π³Π»ΡŽΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² greet() ΠΈΠ· Π½ΠΈΠΆΠ½Π΅ΠΉ части greetings.py ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» example.py со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:

Π’ этом Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ваш ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, greetings.py, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ· Π½Π΅Π³ΠΎ greet(). Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹ запуститС example.py:

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΌ Π² этом случаС, снова являСтся TypeError, Π½ΠΎ Π½Π° этот Ρ€Π°Π· сообщСниС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Он Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ½ ΠΎΠΆΠΈΠ΄Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со строкой, Π½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅ число.

Π”Π²ΠΈΠ³Π°ΡΡΡŒ Π²Π²Π΅Ρ€Ρ…, Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ строку ΠΊΠΎΠ΄Π°, которая Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°. Π—Π°Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки ΠΊΠΎΠ΄Π°. Однако Π½Π° этот Ρ€Π°Π· вмСсто ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ, greet().

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ исполняСмой строкС ΠΊΠΎΠ΄Π°, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ наш ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² greet() пСрСдаСтся Π² Π²ΠΈΠ΄Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа.

Иногда послС возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ. Π’ этих ситуациях Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС трассировки ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹, снова Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡΡΡŒ послСдним Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ трассировки ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ, рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² greet_many() Π² ΠΊΠΎΠ½Π΅Ρ† greetings.py:

Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ привСсти ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ привСтствия всСм Ρ‚Ρ€Π΅ΠΌ людям. Однако, Ссли Π²Ρ‹ запуститС этот ΠΊΠΎΠ΄, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… трассировок:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку, During handling… Π² Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ, ΠΏΠΎΠΊΠ° ваш ΠΊΠΎΠ΄ пытался ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Ѐункция отобраТСния ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… трассировок ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Python 3. Π’ Python 2 Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ трассировку послСднСго ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π’Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ greet() с Ρ†Π΅Π»Ρ‹ΠΌ числом. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ 1 ΠΊ списку ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… людСй, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Однако функция greet_many() ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² greet() Π² Π±Π»ΠΎΠΊ try ΠΈ except. На случай, Ссли greet() Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ³Π΄Π° greet_many() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ привСтствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ greetings.py:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° greet() ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ TypeError ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ цСлочислСнного Π²Π²ΠΎΠ΄Π°, greet_many() ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ пытаСтся вывСсти простоС привСтствиС. Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠ΄ заканчиваСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Он всС Π΅Ρ‰Π΅ пытаСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку ΠΈ Ρ†Π΅Π»ΠΎΠ΅ число.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСх Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² трассировки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Иногда, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ послСднСС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ², Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ. Π’ этих случаях ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅Π΅ прСдставлСниС ΠΎΠ± основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅.

ΠšΠ°ΠΊΠΎΠ²Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ трассировки Π² Python?

Π—Π½Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ трассировку Python, ΠΊΠΎΠ³Π΄Π° ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Π½ΠΎ Π·Π½Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных трассировок Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ этот процСсс.

Π”Π°Π»Π΅Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ распространСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ.

AttributeError

AttributeError вызываСтся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ сбоС ссылки Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присвоСния. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ возникновСния AttributeError:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС для AttributeError Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, int Π² нашСм случаС, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ an_attribute. Видя AttributeError Π² строкС сообщСния ΠΎΠ± ошибкС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈ Π³Π΄Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ этого ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹, вСроятно, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ a_list Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ list, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΈΠΌΠ΅Π½Π΅ΠΌ .append(). Когда Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ AttributeError ΠΈ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ сгСнСрировано, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ .append(), это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹, вСроятно, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Часто это происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΈΠ· Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° None. Π’ этом случаС строка сообщСния ΠΎΠ± ошибкС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄: AttributeError: β€˜NoneType’ object has no attribute β€˜append’.

ImportError

Ошибка ImportError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΅Π³ΠΎ подкласс ModuleNotFoundError, Ссли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈΠ»ΠΈ Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ сущСствуСт Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π’Π°ΠΊΠΆΠ΅ вызываСтся, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ from … import использовано имя модуля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ возникновСния ImportError ΠΈ ModuleNotFoundError:

IndexError

Ошибка IndexError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ список ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π° индСкс Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ находится Π²Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ IndexError:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС для IndexError Π½Π΅ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ссылка Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, выходящая Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΈ Ρ‚ΠΈΠΏ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” список Π² Π΄Π°Π½Π½ΠΎΠΌ случаС. Π­Ρ‚ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² сочСтании с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ трассировки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

KeyError

Подобно IndexError, KeyError вызываСтся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠ»ΡŽΡ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это dict. Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± этом ΠΊΠ°ΠΊ ΠΎΠ± IndexError, Π½ΠΎ для словарСй.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΡŽΡ‡ Π½Π°Π±ΠΎΡ€Π° (ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ) Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² Π½Π°Π±ΠΎΡ€Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ возникновСния KeyError:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС для KeyError ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π² сочСтании с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ трассировки, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания KeyError, взглянитС Π½Π° Python KeyError Exceptions and How to Handle Them..

NameError

Ошибка NameError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, класс, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² вашСм ΠΊΠΎΠ΄Π΅.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° локальноС ΠΈΠ»ΠΈ глобальноС имя Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ greet() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ person. Но Π² самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±Ρ‹Π» ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ persn:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС трассировки NameError Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отсутствуСт. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это пСрСмСнная ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с ошибкой.

NameError Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, Ссли использован ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€:

SyntaxError

Ошибка SyntaxError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π² вашСм ΠΊΠΎΠ΄Π΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ синтаксис Python.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

НиТС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ строки опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ Python REPL эта синтаксичСская ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ сразу послС наТатия Enter:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС SyntaxError Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с синтаксисом Π² ΠΊΠΎΠ΄Π΅. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ строк Π²Ρ‹ΡˆΠ΅ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ строку с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ^ (ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΡƒ), ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ΅ мСсто. Π—Π΄Π΅ΡΡŒ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ отсутствуСт Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ def Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ трассировкС SyntaxError обычная трассировка послСднСй строки отсутствуСт. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ошибка SyntaxError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Python пытаСтся ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄, Π° строки фактичСски Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ.

TypeError

Ошибка TypeError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ваш ΠΊΠΎΠ΄ пытаСтся Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пытаСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ числу ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ len() для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π΄Π»ΠΈΠ½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° опСрация ΠΈΠ»ΠΈ функция примСняСтся ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ нСподходящСго Ρ‚ΠΈΠΏΠ°. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² возникновСния TypeError:

ВсС Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° TypeError приводят ΠΊ строкС сообщСния ΠΎΠ± ошибкС с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ сообщСниями. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… довольно Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строки ΠΈ Ρ†Π΅Π»Ρ‹Π΅ числа вмСстС. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ:

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ эти различия.

ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пытаСтся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ len() для int. Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это для int.

ValueError

Ошибка ValueError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± этом ΠΊΠ°ΠΊ ΠΎΠ± IndexError, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса Π½Π΅ находится Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ValueError для Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ случая.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° опСрация ΠΈΠ»ΠΈ функция ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Π½ΠΎ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ ситуация Π½Π΅ описываСтся Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ IndexError. (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Π’ΠΎΡ‚ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° создания ValueError:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° сообщСния ΠΎΠ± ошибкС ValueError Π² этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ, Π² Ρ‡Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со значСниями:

Как Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ трассировку?

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ получСнная Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ трассировка ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ исправлСниС ΠΊΠΎΠ΄Π° β€” это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² вашСм ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π·Π°ΠΌΠΎΠ»Ρ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, рСгистрируя трассировку ΠΈ дСлая Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Когда Π²Ρ‹ запуститС этот скрипт, Π·Π°Π΄Π°Π² Π΅ΠΌΡƒ URL-адрСс Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎΠ½ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ URL-адрСс, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΠΊΠΎΠ΄ состояния HTTP ΠΈ содСрТимоС ΠΎΡ‚Π²Π΅Ρ‚Π°. Π­Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли ΠΎΡ‚Π²Π΅Ρ‚ Π±Ρ‹Π» статус ошибки HTTP:

Однако ΠΈΠ½ΠΎΠ³Π΄Π° URL-адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выдаСтся для извлСчСния сцСнариСм, Π½Π΅ сущСствуСт ΠΈΠ»ΠΈ хост-сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ этих случаях этот сцСнарий Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ConnectionError ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ трассировку:

Врассировка Python здСсь ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ приводят ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ConnectionError вызываСтся самими запросами. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ΡΡŒ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ трассировкС ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π² нашСм ΠΊΠΎΠ΄Π΅ со строки 5 urlcaller.py.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли Π²Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ строку 5 Π² Π±Π»ΠΎΠΊ try ΠΈ except, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ else с Π±Π»ΠΎΠΊΠΎΠΌ try ΠΈ except. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Python, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ else Python Exceptions: An Introduction.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запуститС сцСнарий с URL-адрСсом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ возникновСнию ошибки ConnectionError, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ -1 для ΠΊΠΎΠ΄Π° состояния ΠΈ строку Connection Error:

Π­Ρ‚ΠΎ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… систСм Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ просто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ трассировку, Π° Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ трассировку Π² Π»ΠΎΠ³Π°Ρ…. РСгистрация трассировок позволяСт Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π»ΠΎΠ³ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ систСмС Турналирования Python, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ со ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python (Logging in Python).

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ трассировку Π² сцСнарии, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΠ°ΠΊΠ΅Ρ‚ logging, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² рСгистратор ΠΈ Π²Ρ‹Π·Π²Π°Π² .exception() для этого рСгистратора Π² Π±Π»ΠΎΠΊΠ΅ except Π±Π»ΠΎΠΊΠ° try/except. Π’Π°Ρˆ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Python отправляСт сообщСния ΠΆΡƒΡ€Π½Π°Π»Π° со стандартной ошибкой Π² stderr. Π’Π°ΠΊ ΠΊΠ°ΠΊ, ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π°Π²ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ трассировки. Однако, Ссли Π²Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚Π΅ Π΅Π³ΠΎ снова с ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ΠΌ stderr, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ систСма вСдСния ΠΆΡƒΡ€Π½Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ наши ΠΆΡƒΡ€Π½Π°Π»Ρ‹ для дальнСйшСго исслСдования:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Врассировка содСрТит Π²Π°ΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π½Π°ΠΉΡ‚ΠΈ, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ Π² вашСм ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΈ слСды ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌΠΈ, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ с Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… трассировок построчно даст Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ содСрТат, ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π½ΠΈΡ… ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° трассировки ΠΏΡ€ΠΈ запускС вашСго ΠΊΠΎΠ΄Π° β€” это отличная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ трассировку, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ большС ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… инструмСнтах ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рассказываСт ваш Π²Ρ‹Π²ΠΎΠ΄ трассировки. ВстроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ traceback ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ трассировок. ΠœΠΎΠ΄ΡƒΠ»ΡŒ трассировки ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² трассировки. Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° Python.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *