Python 3 try: ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² python. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try — except Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ python β try/except ΠΈ raise
1. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python
Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ Π±Π»ΠΎΠΊΠ°Ρ
try/except
, finally
ΠΈ raise
. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Python.
2. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ Python.
3. ΠΠ»ΠΎΠΊΠΈ try/except
ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π΅Π³ΠΎ Π»ΡΡΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² Π±Π»ΠΎΠΊ try
. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
try:
for i in range(3):
print(3/i)
except:
print("ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0")
print("ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ")
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²Π΅Π»Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π‘Π»Π΅Π΄ΠΎΠΌ ΠΈΠ΄Π΅Ρ Π±Π»ΠΎΠΊ except
. ΠΡΠ»ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ try
ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈΡΠ΅Ρ Π±Π»ΠΎΠΊ except
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·Π°Π½ ΡΠ»Π΅Π΄ΠΎΠΌ. ΠΡΡΠ°Π²ΡΠ°ΡΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π² try
ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Python ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²Π΅Π΄Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Π»ΡΠ·Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ.
a. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ except Π² Python
Π£ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° try
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² except
. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
a, b = 1, 0
try:
print(a/b)
print("ΠΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ")
print('10'+10)
except TypeError:
print("ΠΡ ΡΠ»ΠΎΠΆΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ
ΡΠΈΠΏΠΎΠ²")
except ZeroDivisionError:
print("ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0")
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»Ρ
ΠΠΎΠ³Π΄Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈ except
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° try
. Π Π½ΠΈΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ. ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎΡ Π±Π»ΠΎΠΊ except
.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ZeroDivisionError
. ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ except
, Π½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² try
ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. Π’Π°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ. Π Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠΈΠΉ Π±Π»ΠΎΠΊΠΈ except
Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π°. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠΎΠ² except
ΠΈ finally
ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡΡ. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ.
a, b = 1, 0
try:
print(a/b)
except:
print("ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 0")
print("ΠΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ?")
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ²ΠΎΠ΄:
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 0
ΠΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ?
b. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ except
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ except
Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΠ΅Π· Π½ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π²Π΅ΡΠ½Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
try:
print('10'+10)
print(1/0)
except (TypeError,ZeroDivisionError):
print("ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄")
ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄
c. ΠΠ±ΡΠΈΠΉ except ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΎΠ² except
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ except
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠΈΠΌ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ except
.
try:
print('1'+1)
print(sum)
print(1/0)
except NameError:
print("sum Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ")
except ZeroDivisionError:
print("ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 0")
except:
print("Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ...")
Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ...
ΠΠ΄Π΅ΡΡ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π±Π»ΠΎΠΊΠ° ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊΠΈ python Ρ ΡΠΈΡΠ»ΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ TypeError
. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ except
, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ try
ΠΈ except
.
try:
print("1")
print("2")
except:
print("3")
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠ° except
. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Β«default 'except:' must be lastΒ»
:
try:
print(1/0)
except:
raise
except:
print("ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΉΠΌΠ°Π½ΠΎ")
finally:
print("Π₯ΠΎΡΠΎΡΠΎ")
print("ΠΠΎΠΊΠ°")
4. ΠΠ»ΠΎΠΊ finally Π² Python
ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° except
ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±Π»ΠΎΠΊ finally
. ΠΠ½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΈ Π»ΡΠ±ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
.
try:
print(1/0)
except ValueError:
print("ΠΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ")
finally:
print("ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.")
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
Traceback (most recent call last):
File β<pyshell#113>β, line 2, in <module>
print(1/0)
ZeroDivisionError: division by zero
Π‘ΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° finally
. ΠΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΡΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ print
? ΠΠΎ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π±Π»ΠΎΠΊ finally
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ.
Π ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² except
?
try:
print(1/0)
except ZeroDivisionError:
print(2/0)
finally:
print("ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ")
ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ
Traceback (most recent call last):
File "<pyshell#1>", line 2, in <module>
print(1/0)
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#1>", line 4, in <module>
print(2/0)
ZeroDivisionError: division by zero
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ finally
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
5. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ raise Π² Python
ΠΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ±ΡΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ print
ΡΡΡ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
raise ZeroDivisionError
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
raise ZeroDivisionError
ZeroDivisionError
Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ:
a,b=int(input()),int(input())
if b==0:
raise ZeroDivisionError
Traceback (most recent call last):
File "<pyshell#2>", line 3, in <module>
raise ZeroDivisionError
ZeroDivisionError
ΠΠ΄Π΅ΡΡ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ a
ΠΈ b
ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, ΡΠ°Π²Π½Π° Π»ΠΈ b
Π½ΡΠ»Ρ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ZeroDivisionError
.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠΈ try-except? ΠΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ, Π²Π²Π΅ΡΡΠΈ 1 ΠΈ 0, Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
a,b=int(input()),int(input())
try:
if b==0:
raise ZeroDivisionError
except:
print("ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0")
print("ΠΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ?")
1
0
ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0
ΠΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ?
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅:
raise KeyError
Traceback (most recent call last):
File β<pyshell#180>β, line 1, in <module>
raise KeyError
KeyError
a. Raise Π±Π΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Python
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ raise
ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ·Π²Π°ΡΡ. ΠΠ½ΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±Π»ΠΎΠΊΠ΅ except
.
try:
print('1'+1)
except:
raise
Traceback (most recent call last):
File β<pyshell#152>β, line 2, in <module>
print(β1β+1)
TypeError: must be str, not int
b. Raise Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π² Python
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² raise
. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
raise ValueError("ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅")
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
raise ValueError("ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅")
ValueError: ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
6. assert Π² Python
Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ (assert) β ΡΡΠΎ ΡΠ°Π½ΠΈΡΠ°ΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΈΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ, ΠΏΠ°ΡΠ°Π½ΠΎΠΈΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ Β«Π―Β». ΠΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Python, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False
. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ No-operation (NOP).
assert(True)
ΠΡΠ»ΠΈ Π±Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π±ΡΠ»Π° False
?
assert(1==0)
Traceback (most recent call last):
File β<pyshell#157>β, line 1, in <module>
assert(1==0)
AssertionError
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
try:
print(1)
assert 2+2==4
print(2)
assert 1+2==4
print(3)
except:
print("assert False.")
raise
finally:
print("Π₯ΠΎΡΠΎΡΠΎ")
print("ΠΠΎΠΊΠ°")
ΠΡΠ²ΠΎΠ΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
1
2
assert False.
Π₯ΠΎΡΠΎΡΠΎ
Traceback (most recent call last):
File β<pyshell#157>β, line 5, in <module>
assert 1+2==4
AssertionError
Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ.
a. ΠΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄Π»Ρ assert
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅.
assert False,"ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°"
Traceback (most recent call last):
File β<pyshell#173>β, line 1, in <module>
assert False,βΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°β
AssertionError: ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°
7. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Exception
. ΠΠΎΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
class MyError(Exception):
print("ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°")
raise MyError("ΠΎΡΠΈΠ±ΠΊΠ° MyError")
Traceback (most recent call last):
File β<pyshell#179>β, line 1, in <module>
raise MyError(βΠΎΡΠΈΠ±ΠΊΠ° MyErrorβ)
MyError: ΠΎΡΠΈΠ±ΠΊΠ° MyError
ΠΠΎΡ ΠΈ Π²ΡΠ΅, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python.
8. ΠΡΠ²ΠΎΠ΄: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ. ΠΡΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python, ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ .
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python 3 (try-except-else) β ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python 3 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π² ΠΎΡΠΎΠ±ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ . ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΅Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π²Π½Π΅Π·Π°ΠΏΠ½ΡΡ ΠΈ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ. Π’Π°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ?
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π΅ΡΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π΄ΡΡΠ³ΠΈΠ΅ ΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π° ΡΡΠ΅ΡΡΠΈ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π»ΠΈΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ .
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΡΠΈΠ½ΡΡΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΎΡΠΈΠ±ΠΎΠΊ:
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ β Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΠ·-Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°;
- ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ β ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅;
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ β Π²ΡΠ·Π²Π°Π½Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ Π½Π΅ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΡ Π½ΠΎΡΠΌ ΡΠ·ΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΊΡΡΠ³Π»ΠΎΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»Π°:
print("Hello World!)
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠ΄Π°ΡΡΡΡ ΡΠ΅ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ:
File "main.py", line 1 print("Hello World!) ^ SyntaxError: EOL while scanning string literal
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π² Π²ΡΡΠ²Π»Π΅Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½ΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π²ΡΠ·Π²Π°Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π», ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡΠ»Ρ:
def avg(a, b): return a + b / 2 print(avg(10, 20)) 20
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², ΠΌΠ΅Π½ΡΡΡΠΈΡ Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠΌΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π²ΠΎΠ΄ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ»Ρ:
print(10 / 0)
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ:
Traceback (most recent call last): File "main.py", line 1, in <module> print(10 / 0) ZeroDivisionError: division by zero
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ°ΠΉΠ», Π° ΡΠ°ΠΊΠΆΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Π±ΡΠ»ΠΎ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ZeroDivisionError. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅Π³ΠΎ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ±ΠΎΠ΅Π² Π² ΡΠ°Π±ΠΎΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π·Π° ΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π½ΠΎΠ²ΡΠΌ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°ΠΌ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»:
print("Program started") print("Opening file...") f = open("data.txt") print("Program finished")
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ:
Program started Opening file... Traceback (most recent call last): File "main.py", line 3, in <module> f = open("data.txt") FileNotFoundError: [Errno 2] No such file or directory: 'data.txt'
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ FileNotFoundError, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ΅Π΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ Π²Π²ΠΎΠ΄ΠΎΠΌ/Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π΅ Π±ΡΠ»Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΈΠ·-Π·Π° ΠΏΡΠΎΡΠ²ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Π² Python ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ try-except. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
print("Program started") try: print("Opening file...") f = open("data.txt") except: print("File not found!") print("Program finished") Program started Opening file... File not found! Program finished
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π° Π²ΡΡΠ΅, Π±Π»ΠΎΠΊ try ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ (ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°), Π° Π±Π»ΠΎΠΊ except Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΠ²ΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π’Π΅ΠΏΠ΅ΡΡ Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π±ΡΠ» Π½Π°ΠΉΠ΄Π΅Π½, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΡΠ°Π½Π΅Ρ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ, ΠΎ ΡΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ print.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² except
ΠΠ»ΠΎΠΊΠΎΠ² except ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠΈΠ΅:
print("Program started") try: print("Opening file...") f = open("data.txt") except FileNotFoundError: print("File not found!") except Exception: print("Something gone wrong!") print("Program finished") Program started Opening file... File not found! Program finished
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈ else
ΠΠ»ΠΎΠΊΠΈ try-except ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΎΡΠΊΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΊΡΡ ΡΡΡΠΎΠΊΡ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ try.
Π’Π°ΠΊΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ else, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β else ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ write. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ βwβ. Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°ΠΉΠ» ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π½Π° Π·Π°ΠΏΠΈΡΡ. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ»Π° Π½Π΅ Π±ΡΠ»ΠΎ β ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ, Π΅ΡΠ»ΠΈ Π±ΡΠ» β ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ.
print("Program started") try: print("Opening file...") f = open("data.txt", "w") try: print("Writing to file...") f.write("Hello World!") except Exception: print("Something gone wrong!") else: print("Success!") except FileNotFoundError: print("File not found!") print("Program finished") Program started Opening file... Writing to file... Success! Program finished
finally
ΠΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊ finally, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π² Π½Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»:
print("Program started") try: print("Opening file...") f = open("data.txt", "w") try: print("Writing to file...") f.write("Hello World!") except Exception: print("Something gone wrong!") else: print("Success!") finally: print("Closing file...") f.close() except FileNotFoundError: print("File not found!") print("Program finished") Program started Opening file... Writing to file... Success! Closing file... Program finished
ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ with/as, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π»ΠΈΠ½Π° Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
print("Program started") try: print("Writing to file...") with open("data.txt", "w") as f: f.write("Hello World!") except Exception: print("Something gone wrong!") print("Program finished") Program started Writing to file... Program finished
ΠΠ°ΠΊ ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΡΠΈΠΏΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π²ΡΠ΅Π³Π΄Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±Π΅Π· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΡΠΎΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ
Python ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊ ΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π² Π½ΡΠΆΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Python ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ raise. Π‘Π»Π΅Π΄ΠΎΠΌ Π·Π° Π½ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Exception, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ try-except, ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
print("Program started") try: raise Exception("User Exception!") except Exception as e: print(str(e)) print("Program finished") Program started User Exception! Program finished
Π§ΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Exception. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠΎΠ±ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Exception ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΈ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ str.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΎΡΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ NegativeAge, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅ΡΡΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΠΎΠ·ΡΠ°ΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΊΡΠ°Π½ Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
class NegativeAge(Exception): pass print("Program started") try: age = int(input("Enter your age: ")) if age < 0: raise NegativeAge("Exception: Negative age!") print("Success!") except NegativeAge as e: print(e) print("Program finished") Program started Enter your age: -18 Exception: Negative age! Program finished
ΠΠ°ΠΏΠΈΡΡ Π² Π»ΠΎΠ³
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π΅ Π²Π»ΠΈΡΡΡΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² Python ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π»ΠΎΠ³ΠΎΠ². Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠΌΠΏΠΎΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΠ»Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² Π»ΠΎΠ³ΠΎΠ², ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
import logging logging.basicConfig(level = logging.DEBUG) logging.debug("Debug message!") logging.info("Info message!") logging.warning("Warning message!") logging.error("Error message!") logging.critical("Critical message!") DEBUG:root:Debug message! INFO:root:Info message! WARNING:root:Warning message! ERROR:root:Error message! CRITICAL:root:Critical message!
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠΉ ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ logging Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² Π»ΠΎΠ³ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ±ΡΡΠ½ΠΎ Π»ΠΎΠ³ ΠΏΠΈΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ», Π·Π°Π΄Π°Π΄ΠΈΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊ log.txt. Π£ΡΠΎΠ²Π΅Π½Ρ INFO ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ Π½ΠΈΠΆΠ΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ debug) Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π»ΠΎΠ³Π΅. Python ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π² try-except ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ:
import logging logging.basicConfig(filename="log.txt", level = logging.INFO) try: print(10 / 0) except Exception as e: logging.error(str(e))
Π log .txt Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΡΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ βERROR:root:division by zeroβ.
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠ³Π°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΡΠΈΠ½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ BaseException, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
- SystemExit β Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ sys.exit;
- KeyboardInterrupt β ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ;
- GeneratorExit β ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° close Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° generator;
- Exception β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΡΡ Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΊΠ»Π°ΡΡ Exception ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΡΠ΅ ΠΎΠ½ΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Π΅ΡΡΠΈΠΈ Python 3.
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° |
ArithmeticError | ΠΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ) |
AssertionError | ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ Π»ΠΎΠΆΠ½ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ assert |
AttributeError | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ |
BufferError | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ |
EOFError | ΠΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΠΌΠΎΠ³Π»Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° |
ImportError | Π‘ΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π»ΠΈΠ±ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° |
LookupError | ΠΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΡΠΎ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ»ΠΈ ΠΊΠ»ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ |
MemoryError | ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ |
NameError | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ Π½ΡΠΆΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ |
NotImplementedError | ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΊΠ»Π°ΡΡΠ°Ρ -Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ |
OSError | ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ (ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²) |
ReferenceError | ΠΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠΎ ΡΠ»Π°Π±ΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ |
RuntimeError | Π‘ΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ |
StopIteration | ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ next ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² |
SyntaxError | ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ |
SystemError | ΠΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ |
TypeError | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ |
UnicodeError | Π‘ΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ |
ValueError | ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ |
Warning | ΠΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ |
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ Π΅Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½Π΅ΠΌ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π³ΠΎΡΠΎΠ²ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅.
ΠΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Try Except Π² Python
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ try-except ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π°ΡΡΠ΄Ρ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ· Π»ΡΡΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ try-except Π² Python.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½Π° ΠΏΡΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π»ΠΎΠΊ try, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try, ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° Π±Π»ΠΎΠΊ except Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Try-Except / Try-Except-else? Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Try-Except ΠΈ Try-Except-Else Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ Python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠΈΠ»Ρ LBYL (Look before you leap), ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ race ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ try-except. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ ΠΊΠΎΠ΄ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°ΡΠ΅ΡΡ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ²Ρ os.path.exists ΠΈΠ»ΠΈ Queue.full, ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ ΠΊ ΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅. ΠΠΎΠ»Π΅Π΅ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π·Π΄Π΅ΡΡ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΠΈΠ»Ρ try-except-else, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΡΠ»ΡΡΠ°ΡΠΌΠΈ.
ΠΡΠ·ΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π² Python. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΠΎΡΠΈΡΡ ΠΈΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·Π²Π°Π² Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ raise Exception(βTest error!β). ΠΠΎΠ·Π½ΠΈΠΊΠ½ΡΠ²ΡΠ΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ Π΄Π°Π»ΡΡΠ΅ Π² ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ? ΠΠ½ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΅ΡΠ°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ race, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ°ΠΊΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ , ΠΊΠ°ΠΊ ΡΠΈΠΊΠ»Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠΈ ΠΈ Ρ.Π΄.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ — ΡΡΠΎ ΠΈΡΠΊΡΡΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠ°ΠΊ, ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΡΡΠ΅ΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π»ΡΡΡΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
Python: ΡΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Try-Except, Try-Except-Else ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅
1. ΠΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ.
ΠΡΠΎ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
try: #your code except Exception as ex: print(ex)
2. ΠΠΎΠΉΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Except
except (Exception1, Exception2) as e: pass
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Π² Python 2.6 / 2.7. ΠΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² Python 3. ΠΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ as.
3. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Except
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΡΡΠ΅ΠΆΠ°.
try: file = open('input-file', 'open mode') except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args[-1]))
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Except. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ, Except Π±Π»ΠΎΠΊΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅.
try: file = open('input-file', 'open mode') except EOFError as ex: print("Caught the EOF error.") raise ex except IOError as e: print("Caught the I/O error.") raise ex
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π· ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
try: file = open('input-file', 'open mode') except: raise
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π½ΠΈ ΠΌΠ°Π»Π΅ΠΉΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°ΡΡ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
4. ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΠ±ΡΠΎΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
ΠΠΎΠ·Π½ΠΈΠΊΡΠΈΠ΅ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ. Π₯ΠΎΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ raise Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°.
try: # ΠΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. raise Exception('I learn Python!') except: print("Entered in except.") # ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. raise
ΠΡΠ²ΠΎΠ΄:
Entered in except. Traceback (most recent call last): File "python", line 3, in Exception: I learn Python!
5. ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Else
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° try-except. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ else Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠ°ΠΌ except.
Π Π±Π»ΠΎΠΊΠΈ else Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π±ΡΠ»ΠΎ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» while. ΠΠΎΠ΄ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π° Π·Π°ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ int(). ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ»Ρ, ΡΠΎΠ³Π΄Π° Π±Π»ΠΎΠΊΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΡΡΠΏΠ΅Ρ . Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π±Π»ΠΎΠΊ else.
while True: x = int(input()) try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)
6. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Finally
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡΡ , Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ finally. Python Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π² Π±Π»ΠΎΠΊΠ΅ finally. ΠΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΠΎΡΠΈΡΡΠΊΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΡΠΈΡΡΠΊΠ° ΠΏΡΠΎΡΠ»Π°.
ΠΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠΉΠΌΠ°Π½Π° Π² Π±Π»ΠΎΠΊΠ΅ try. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ except Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ΅ finally Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π±Π»ΠΎΠΊ finally Π±ΡΠ΄Π΅Ρ ΠΠ‘ΠΠΠΠ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΡΠ°Π½ΡΡΠ΅ Π½Π΅Π³ΠΎ.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅.
try: x = 1 / 0 except: print("Error occurred") finally: print("The [finally clause] is hit")
ΠΡΠ²ΠΎΠ΄:
Error occurred The [finally clause] is hit
7. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ As Π΄Π»Ρ ΠΎΡΠ»ΠΎΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ IOError ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ.
try: f = open("no-file") except IOError as err: print("Error:", err) print("Code:", err.errno)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
('Error:', IOError(2, 'No such file or directory')) ('Code:', 2)
8. ΠΡΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½Ρ ΠΈ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π»ΡΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π½ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅.
ΠΠ»ΠΎΡ ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Inside the except block: ValueError('Intentional - do not want this to get caught',)
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΡΡΠ΅:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΎΠ±ΡΠΈΠΉ ΡΠΈΠΏ. Π ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΡ args Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅Π²Π΅ΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ.
try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')
9. ΠΠ°ΠΊ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
Π ΠΈΠ΄Π΅Π°Π»Π΅, Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
try: assert False except AssertionError: pass print('Welcome to Prometheus!!!')
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Welcome to Prometheus!!!
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python ΠΈ ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Exception Errors:
- IOError — ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ.
- ImportError — ΠΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Python Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΠΈΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.
- ValueError — ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
- KeyboardInterrupt — ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΠΊΠ»ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ (Ρ.Π΅. Control-C ΠΈΠ»ΠΈ Del Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ)
- EOFError — ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (input() / raw_input()) ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° (EOF), Π½ΠΎ Π±Π΅Π· ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠΌΠ΅ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
except IOError: print('Error occurred while opening the file.') except ValueError: print('Non-numeric input detected.') except ImportError: print('Unable to locate the module.') except EOFError: print('Identified EOF error.') except KeyboardInterrupt: print('Wrong keyboard input.') except: print('An error occurred.')
Π Π΅Π·ΡΠΌΠ΅ — ΠΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Try-Except Π² Python
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ. ΠΡΠΎ ΡΠ°ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. Π ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½ Π΄Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠ°ΠΊ try-except ΠΈΠ»ΠΈ try-except-else, try-except-finally.
Python 3: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ: try, except, finally, else
ΠΠ° ΡΡΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠ΅ΠΌΡ
β ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°:
ΡΠΎ Ρ Π½Π°Ρ ΠΎΠ½
Π²ΡΠ·ΡΠ²Π°Π» ΠΎΡΠΈΠ±ΠΊΡ IndexError, Ρ.ΠΊ. ΡΠ΄Π°Π»ΡΡΡ Π±ΡΠ»ΠΎ ΡΠΆΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ. ΠΠ»ΠΈ ΠΆΠ΅,
Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ:
ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ
ΠΎΡΠΈΠ±ΠΊΠ΅ ZeroDivisionError. ΠΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
int("12abc") #ValueError "2"+5 #TypeError
Π ΡΠ°ΠΊΠΈΡ
ΡΠΈΡΡΠ°ΡΠΈΠΉ
ΠΌΠ°ΡΡΠ°. ΠΡΠ΅ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π΅ΡΡΡ Π½Π΅ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΡΡΡ β ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΊΠΈΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΌΡ Π·Π΄Π΅ΡΡ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π½Π°ΡΠ°Π»Π΅
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π²ΡΡ
ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π»:
x = input("x: ") y = input("y: ") x = int(x) y = int(y) Β res = x/y print(res)
ΠΡΠ»ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ
Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠΎ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π²Π΅ΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅
ΠΈΠ³ΡΠ΅ΠΊΠ° Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π½Π΅ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊ
Π²ΠΎΡ, Π² Python Π΅ΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ
Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ (ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΡ) ΡΠ°ΠΊΠΈΡ
ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ
ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² Π±Π»ΠΎΠΊ try:
try: Β Β Β x = int(x) Β Β Β y = int(y) Β Β Β Β res = x/y except ZeroDivisionError: Β Β Β res = "Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ" print(res)
Π ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ
Π·Π°ΠΏΠΈΡΠ°ΡΡ except ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Π½Π° Π½ΠΎΠ»Ρ, Ρ.Π΅. ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ZeroDivisionError. ΠΠ°Π²Π°ΠΉΡΠ΅
Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ²ΠΎΠ΄ΠΈΠΌ 1 ΠΈ 0,
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Π½Π° Π½ΠΎΠ»ΡΒ».
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ
Π±Π»ΠΎΠΊ try except ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try. ΠΡΠ»ΠΈ Π²ΡΠ΅
ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ
ΠΎΠ΄ΠΈΡ Π΄ΠΎ Π±Π»ΠΎΠΊΠ° except ΠΈ ΠΎΠ½
ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. Π Π΄Π°Π»Π΅Π΅ ΡΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ print ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ
ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π»ΠΎΠΊΠ° try Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ
ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (Π»ΡΠ±ΠΎΠ΅), ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π±Π»ΠΎΠΊΡ except Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ
Π½ΡΠΆΠ½ΠΎΠ΅ ΠΈΠΌΡ Π² Π±Π»ΠΎΠΊΠ΅ except ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ Π½Π°
Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Python). Π Π² ΡΠ»ΡΡΠ°Π΅
ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ (unhandled
exception) ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ.
Π§ΡΠΎΠ±Ρ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ Π²
Π±Π»ΠΎΠΊΠ΅ try Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΡΡΠ³Π»ΡΡ
ΡΠΊΠΎΠ±ΠΊΠ°Ρ
ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΏΠΎΡΠ»Π΅
ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° except:
except (ZeroDivisionError, ValueError): Β Β Β res = "Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅"
ΠΠ»ΠΈ, Π΄Π»Ρ
ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π² ΡΠ°Π·Π½ΡΡ
Π±Π»ΠΎΠΊΠ°Ρ
except:
except ZeroDivisionError: Β Β Β res = "Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ" except ValueError: Β Β Β res = "ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΡΠΈΡΠ»ΠΎ"
ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ
ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ
, ΡΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ°ΠΊ:
except ZeroDivisionError as z: Β Β Β res = z except ValueError as v: Β Β Β res = v
Π’ΠΎ Π΅ΡΡΡ, ΠΏΠΎΡΠ»Π΅
ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ, Π½ΠΎ ΠΌΡ ΠΎ Π½ΠΈΡ
ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ Π½Π΅
Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊ ΠΈΠΌΡ) ΡΡΠ°Π²ΠΈΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅
ΡΠ»ΠΎΠ²ΠΎ as ΠΈ Π΄Π°Π»ΡΡΠ΅
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡ ValueError, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ
ΡΠ°Π½ΠΈΡΡΡ
ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠ²ΠΎΠ΄Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ print, ΠΌΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°Π»Π΅Π΅, Π±Π»ΠΎΠΊ try ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ
Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ else, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°
Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try, ΡΠΎ Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π°
Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
else: Β Β Β print("ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ")
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ
Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²Π²ΠΎΠ΄Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΆΠ΅
Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΡΠΎΡ Π±Π»ΠΎΠΊ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
ΠΡΡΠ³ΠΈΠΌ
Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊ finally, ΠΊΠΎΡΠΎΡΡΠΉ,
Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° try, Π²Π½Π΅
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅Ρ:
finally: Β Β Β print("ΠΠ»ΠΎΠΊ finally Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°")
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ
Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΎ
Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΡΡΠΎΡ Π±Π»ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΠ»Π΅ try? ΠΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅
ΡΡΠΏΠ΅Ρ
ΠΎΠΌ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΡ print ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅
ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈ, Π²ΡΠΎΠ΄Π΅ Π±Ρ, Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅? Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½Π΅Ρ. Π‘ΠΌΠΎΡΡΠΈΡΠ΅,
Π΅ΡΠ»ΠΈ ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ±Π΅ΡΠ΅ΠΌ Π±Π»ΠΎΠΊ except Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ValueError, Π·Π°ΠΏΡΡΡΠΈΠΌ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ Π½Π΅ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ, Π±Π»ΠΎΠΊ finally Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ! ΠΡΠΎΠ³ΠΎ Π½Π΅
ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π±Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ print ΠΏΠΎΡΠ»Π΅ try.
ΠΠ»ΠΈ, Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ
ΠΏΡΠΈΠΌΠ΅Ρ:
def getValues(): Β Β Β x = input("x: ") Β Β Β y = input("y: ") Β Β Β try: Β Β Β Β Β Β Β x = int(x) Β Β Β Β Β Β Β y = int(y) Β Β Β Β Β Β Β return x,y Β Β Β except ValueError as v: Β Β Β Β Β Β Β print(v) Β Β Β Β Β Β Β return 0,0 Β Β Β finally: Β Β Β Β Β Β Β print("finally Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎ return") Β x,y = getValues() print(x,y)
ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ
ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π΄Π²ΡΡ
ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ finally Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ ΡΡΠΎΡ Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² return, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΡ
Π² ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ
ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ except Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
x = input("x: ") y = input("y: ") try: Β Β Β x = int(x) Β Β Β y = int(y) Β Β Β Β res = x/y except: Β Β Β print("ΠΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅") else: Β Β Β print("ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ") finally: Β Β Β print("ΠΠ»ΠΎΠΊ finally Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°") Β print(res)
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ print(«ΠΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅») Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ Π»ΡΠ±ΡΡ
ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π² Π±Π»ΠΎΠΊΠ΅ try, Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ, Ρ.Π΅.
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ.
ΠΠΎΡ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ
Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
(Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
) ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈ ΠΈ ΡΡΡΠΎΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠ΅
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠΈΡΡΠ°ΡΠΈΠΉ. ΠΠΎ Π΄Π»Ρ ΡΠ³Π»ΡΠ±Π»Π΅Π½ΠΈΡ Π² ΡΡΠΎΡ
ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π½ΡΠΆΠ½ΠΎ Π²Π½Π°ΡΠ°Π»Π΅ ΠΈΠ·ΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΠΠΠ Π² Python. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ
ΠΏΠΎΠΊΠ° Π½Π° ΡΡΠΎΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ, ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅
ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ°Π΄Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ
1. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π²ΠΎΠ΄Π° Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π» ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²
ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π». (ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π΄Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡ map Π΄Π»Ρ
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΡΠΎΠΊ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π»).
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ.
2. ΠΠ°ΠΏΠΈΡΠ°ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ ΡΠΏΠΈΡΠΊΠ°.
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ Π΅Π΅ ΡΠ°Π±ΠΎΡΠ΅.
3. ΠΠ°ΠΏΠΈΡΠ°ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° yield) Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° pop()). Π€ΡΠ½ΠΊΡΠΈΡ
Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ Π΅Π΅ ΡΠ°Π±ΠΎΡΠ΅.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π² Python
ΠΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅Π΄ΠΎΠ±ΡΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΡΠ°ΠΊ ΠΈ Π½Π΅Π΄ΠΎΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π·Π»ΠΎΠΌΡΠΈΠΊΠ°.
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΡΠ»ΠΎ ΠΈ Π΄Π΅Π»ΠΈΡ ΡΡΠΎ Π½Π° ΡΡΠΎ ΡΠΈΡΠ»ΠΎ:
a = float(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ ")) print(100 / a)
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅Π΄Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΎΡ Π½Π΅Π³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, ΡΠΎ Π²ΡΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ.
ΠΠΎΡ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΡΡΠ»ΠΈ, ΡΡΠΎ Π½Π° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ.
Π Π²ΠΎΡ ΡΡΠΎ ΡΠ»ΡΡΠΈΡΡΡ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΠΌΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π§Π΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Ρ Π½Π΅Π΅ ΡΡΠ·Π²ΠΈΠΌΡΡ ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Python ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
Π£ΡΠ·Π²ΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊ try, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π±Π»ΠΎΠΊ except, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° Π½Π΅Π΅:
try: a = float(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ:")) except ValueError: print ("ΠΡΠΎ Π½Π΅ ΡΠΈΡΠ»ΠΎ!")
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² ΡΠΈΠΏ float, Π΅ΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° ValueError, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΠΎΠΊΠ° «This is not a valid number». Π Π±Π»ΠΎΠΊΠ΅ except ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎ Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π»ΡΠ±ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠ»ΠΎΠΊ try ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² except:
try: a = float(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: ") print (100 / a) except ValueError: print ("ΠΡΠΎ Π½Π΅ ΡΠΈΡΠ»ΠΎ") except ZeroDivisionError: print ("ΠΠ° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ")
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΡΠΎΠΉ Π±Π»ΠΎΠΊ except, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΡΡΠΎΠΉ Π±Π»ΠΎΠΊ except Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄ΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ:
try: a = float(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: ") print (100 / a) except ValueError: print ("ΠΡΠΎ Π½Π΅ ΡΠΈΡΠ»ΠΎ!") except ZeroDivisionError: print ("ΠΠ° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ!") except: print ("ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.")
ΠΠ»ΠΎΠΊΡ except ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ else, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ:
try: a = float(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: ") print (100 / a) except ValueError: print ("ΠΡΠΎ Π½Π΅ ΡΠΈΡΠ»ΠΎ!") except ZeroDivisionError: print ("ΠΠ° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ!") except: print ("ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.") else: print ("ΠΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ")
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
Π’Π°ΠΊΠΆΠ΅ Ρ Π±Π»ΠΎΠΊΠ° except Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ finally, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ ΠΊΠΎΠ΄ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π·:
try: a = float(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: ") print (100 / a) except ValueError: print ("ΠΡΠΎ Π½Π΅ ΡΠΈΡΠ»ΠΎ!") except ZeroDivisionError: print ("ΠΠ° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ!") except: print ("ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.") else: print ("ΠΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ") finally: print ("Π― Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅!")
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠΈΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ Π²Π·Π»ΠΎΠΌΠ°, Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌΡΡ Π² Π½Π΅ΠΉ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ try, except ΠΈ finally
ΠΠ· Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ
Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ try
, except
ΠΈ finally
. Π’Π°ΠΊΠΆΠ΅ Π²ΡΠ΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Python
Π ΡΠ·ΡΠΊΠ΅ Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ (ΡΡΠΎ-ΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ).
ΠΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΌΡ, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π
, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π‘
. ΠΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ C
, Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ, ΡΠΎ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ B
ΠΈ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠ½ΠΊΡΠΈΡ Π
.
ΠΡΠ»ΠΈ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ ΡΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π Python ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ try
.
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π²Π½ΡΡΡΡ Π±Π»ΠΎΠΊΠ° try
. Π ΠΊΠΎΠ΄, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ, β Π²Π½ΡΡΡΡ Π±Π»ΠΎΠΊΠ° except
.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
# ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ sys import sys randomList = ['a', 0, 2] for entry in randomList: try: print("The entry is", entry) r = 1/int(entry) break except: print("Oops!", sys.exc_info()[0], "occurred.") print("Next entry.") print() print("The reciprocal of", entry, "is", r)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
The entry is a Oops! <class 'ValueError'> occurred. Next entry. The entry is 0 Oops! <class 'ZeroDivisionError'> occured. Next entry. The entry is 2 The reciprocal of 2 is 0.5
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΠΊΠ»Π° for
, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° randomList
. ΠΠ°ΠΊ ΠΌΡ ΡΠ°Π½Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try
.
ΠΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π±Π»ΠΎΠΊ except
ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ°). ΠΠΎ Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΎΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ except
(Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΈ Π²ΡΠΎΡΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ°).
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΠ²Π΅Π»ΠΈ Π½Π° ΡΠΊΡΠ°Π½ ΠΈΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ exc_info()
, ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ sys
. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ a
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ValueError
,Β Π°Β 0
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ZeroDivisionError
.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Python Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Exception
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
# ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ sys import sys randomList = ['a', 0, 2] for entry in randomList: try: print("The entry is", entry) r = 1/int(entry) break except Exception as e: print("Oops!", e.__class__, "occurred.") print("Next entry.") print() print("The reciprocal of", entry, "is", r)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅.
ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ except
.
Π‘ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΡΠΎ Π½Π΅Π·Π΄ΠΎΡΠΎΠ²ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ, ΠΈ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ try
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π±Π»ΠΎΠΊΠΎΠ² except
, Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° except
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄:
try: # do something pass except ValueError: # handle ValueError exception pass except (TypeError, ZeroDivisionError): # handle multiple exceptions # TypeError and ZeroDivisionError pass except: # handle all other exceptions pass
ΠΡΠ·ΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π Python ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠΎ ΠΌΡ ΠΈ ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ raise
.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
>>> raise KeyboardInterrupt Traceback (most recent call last): ... KeyboardInterrupt >>> raise MemoryError("This is an argument") Traceback (most recent call last): ... MemoryError: This is an argument >>> try: ... a = int(input("Enter a positive integer: ")) ... if a <= 0: ... raise ValueError("That is not a positive number!") ... except ValueError as ve: ... print(ve) ... Enter a positive integer: -2 That is not a positive number!
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try Ρ Π±Π»ΠΎΠΊΠΎΠΌ else
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ else
Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ try
.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π² ΡΠ°ΠΌΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ else
, Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π² ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ Π΅ΠΌΡ Π±Π»ΠΎΠΊΠ΅ except
.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
# ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» try: num = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: ")) assert num % 2 == 0 except: print("Π§ΠΈΡΠ»ΠΎ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅!") else: reciprocal = 1/num print(reciprocal)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠ»ΠΈ ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: 1 Π§ΠΈΡΠ»ΠΎ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅!
Π Π΅ΡΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΡΠ½ΠΎΠ΅, ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π΅ΠΌΡ ΡΠΈΡΠ»ΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: 4 0.25
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Π²Π²Π΅Π΄Π΅ΠΌ 0
, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ZeroDivisionError
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ else
Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ Π΅ΠΌΡ Π±Π»ΠΎΠΊΠ΅ except
.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: 0 Traceback (most recent call last): File "<string>", line 7, in <module> reciprocal = 1/num ZeroDivisionError: division by zero
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ tryβ¦finally
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ try
ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ finally
. ΠΡΠΎΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ, ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Ρ GUI (Graphical User Interface β Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
ΠΠΎ Π²ΡΠ΅Ρ
ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΡΡΡΡ ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠ΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ GUI, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠΈ) ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ finally
, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠΎ:
try: f = open("test.txt",encoding = 'utf-8') # perform file operations finally: f.close()
Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°ΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠ°ΠΊΠΎΠ΅ Π±Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Python Try-Except
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ try-except β Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π»ΡΡΡΠΈΠΌΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ try-except Π² Python.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π»ΠΎΠΊ try, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° except. ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π΄Π°Π΅Ρ ΡΠ±ΠΎΠΉ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π±Π»ΠΎΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ try-except ΠΈ try-except-else ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ Python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠΈΠ»Ρ LBYL (Look before you leap), ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ. Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ try-except.
Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ os.path.exists ΠΈΠ»ΠΈ Queue.full, ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ try-except-else.
Π Python ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π²ΡΠ·Π²Π°Π² ΠΈΠ· ΠΊΠΎΠ΄Π° [raise Exception (βTest error!β)]. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π΄Π°Π»ΡΡΠ΅ ΠΏΠΎ ΡΡΠ΅ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² ΡΠΈΠΊΠ»Π°Ρ , ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΡΠ΅ΡΠΈ ΠΈ Ρ.Π΄.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ β ΡΡΠΎ ΠΈΡΠΊΡΡΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊ Π² Python Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Try-Except
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try.
try: #Π²Π°ΡΠΊΠΎΠ΄ exceptExceptionas ex: print(ex)
ΠΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ except.
except(Exception1,Exception2)as e: pass
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² Python 2.6 / 2.7 Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅Π»ΡΠ·Ρ Π΄Π΅Π»Π°ΡΡ Π² Python 3. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ [as].
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄:
try: file= open('input-file','open mode') except(IOError,EOFError)as e: print("Testing multiple exceptions. {}".format(e.args[-1]))
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ β ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ except:
try: file= open('input-file','open mode') exceptEOFErroras ex: print("Caught the EOF error.") raise ex exceptIOErroras e: print("Caught the I/O error.") raiseex
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π· ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
try: file= open('input-file','open mode') except: # In case of any unhandled error, throw it away raise
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ.
ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΡ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ. ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ except, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ² [raise] Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄.
try: # ΠΠ°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. raiseException('I learn Python!') except: print("Entered in except.") # ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. raise
ΠΡΠ²ΠΎΠ΄:
Enteredinexcept. Traceback(most recent call last): File"python", line 3,in<module> Exception: I learn Python!
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ else ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° try-except. ΠΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½ΠΎ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ else Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠ°ΠΌ except .
Π Π±Π»ΠΎΠΊΠ°Ρ else ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠΈΠΊΠ» while ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. ΠΠΎΠ΄ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ [int()]. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π±Π»ΠΎΠΊ except Π±ΡΠ΄Π΅Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π±Π»ΠΎΠΊ else.
whileTrue: # ΠΠ²Π΅Π΄Π΅ΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. x =int(input()) # Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅ 1 Π½Π° x, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ try: result=1/ x except: print("Error case") exit(0) else: print("Pass case") exit(1)
ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° [finally]. Python Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΎΡΠΈΡΡΠΊΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ.
ΠΡΠΈΠ±ΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ try. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ except, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² [finally].
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄.
try: # ΠΠ°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ. x =1/0 except: # Π£ΡΠ»ΠΎΠ²ΠΈΠ΅Except: print("Error occurred") finally: # Π£ΡΠ»ΠΎΠ²ΠΈΠ΅Finally: print("The [finally clause] is hit")
ΠΡΠ²ΠΎΠ΄:
Error occurred The[finally clause]is hit
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ <identifier> ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ IOError, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ.
try: # ΠΠ°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ. f = open("no-file") exceptIOErroras err: # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ IOError Π΄Π»ΡΡΡΠ΅ΡΠ°. print("Error:", err) print("Code:",err.errno)
ΠΡΠ²ΠΎΠ΄:
('Error:',IOError(2,'No such file or directory')) ('Code:',2)
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΈΠ½Π°ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ exception ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡΡΡ. ΠΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅.
ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ:
defbad_exception(): try: raiseValueError('Intentional - do not want this to get caught') raiseException('Exception to be handled') exceptExceptionas error: print('Inside the except block: '+repr(error)) bad_exception()
ΠΡΠ²ΠΎΠ΄:
Inside the except block:ValueError('Intentional - do not want this to get caught',)
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ:
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΎΠ±ΡΠΈΠΉ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ args Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ.
try: raiseValueError('Testing exceptions: The input is in incorrect order','one','two','four') exceptValueErroras err: print(err.args)
ΠΡΠ²ΠΎΠ΄:
('Testing exceptions: The input is in incorrect order','one','two','four')
ΠΡΡΡΠ΅ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ. ΠΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
try: assertFalse exceptAssertionError: pass print('Welcome to Prometheus!!!')
ΠΡΠ²ΠΎΠ΄:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Python Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
- IOErrorβΠ²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ.
- ImportError β Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ python Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½.
- ValueError β Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
- KeyboardInterrupt β ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° DelΠΈΠ»ΠΈ Ctrl-C.
- EOFError β ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ input() / raw_input()Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° (EOF), Π½ΠΎ Π±Π΅Π· ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
exceptIOError: print('Error occurred while opening the file.') exceptValueError: print('Non-numeric input detected.') exceptImportError: print('Unable to locate the module.') exceptEOFError: print('Identified EOF error.') exceptKeyboardInterrupt: print('Wrong keyboard input.') except: print('An error occurred.')
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ. ΠΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ try-except ΠΈΠ»ΠΈ try-except-else, try-except-finally.
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Β«How To Best Use Try Except In Python β Especially For BeginnersΒ» , ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π΄ΡΡΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.ΡΡ
ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π». ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΡ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ!
8. ΠΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 3.9.0
ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π½Π΅ Π±ΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π±ΡΠ»ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΡΠ°Π»ΠΈΡΡ
ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²ΠΈΠ΄Π΅Π»ΠΈ. ΠΡΡΡ (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ) Π΄Π²Π°
ΡΠ°Π·Π»ΠΈΡΠΈΠΌΡΠ΅ Π²ΠΈΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ: ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ .
8.1. ΠΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠ²Π»ΡΡΡΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ Π²ΠΈΠ΄ΠΎΠΌ
ΠΆΠ°Π»ΠΎΠ±Π°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅, ΠΏΠΎΠΊΠ° ΠΈΠ·ΡΡΠ°Π΅ΡΠ΅ Python:
>>> while True print ('ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ') Π€Π°ΠΉΠ» "", ΡΡΡΠΎΠΊΠ° 1 Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ True print ('ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ') ^ SyntaxError: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Β«ΡΡΡΠ΅Π»ΠΊΡΒ», ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π°
ΡΠ°ΠΌΠ°Ρ ΡΠ°Π½Π½ΡΡ ΡΠΎΡΠΊΠ° Π² ΡΡΡΠΎΠΊΠ΅, Π³Π΄Π΅ Π±ΡΠ»Π° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°.ΠΡΠΈΠ±ΠΊΠ°
Π²ΡΠ·Π²Π°Π½Π½ΡΠΉ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠΉ) ΡΠΎΠΊΠ΅Π½ΠΎΠΌ , ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΡΡΡΠ΅Π»ΠΊΠ΅: Π²
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ print ()
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅
( ':'
) ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ. ΠΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ
Π·Π½Π°ΡΡ, Π³Π΄Π΅ ΠΈΡΠΊΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π²Π²ΠΎΠ΄ ΠΏΠΎΡΡΡΠΏΠΈΠ» ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΡ.
8.2. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅ΡΠ½Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ
ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΈΠ±ΠΊΠΈ, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΡΠ½ΠΎ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ: Π²Ρ ΡΠΊΠΎΡΠΎ ΡΠ·Π½Π°Π΅ΡΠ΅
ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ
Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
Π½Π° Python.ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π·Π΄Π΅ΡΡ:
>>> 10 * (1/0) ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ): Π€Π°ΠΉΠ» "", ΡΡΡΠΎΠΊΠ° 1, Π² ZeroDivisionError: Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ >>> 4 + ΡΠΏΠ°ΠΌ * 3 ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ): Π€Π°ΠΉΠ» " ", ΡΡΡΠΎΠΊΠ° 1, Π² NameError: ΠΈΠΌΡ 'spam' Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ >>> '2' + 2 ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ): Π€Π°ΠΉΠ» " ", ΡΡΡΠΎΠΊΠ° 1, Π² TypeError: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠ²Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ int Π² str
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.ΠΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΏΠΎΠ², ΠΈ ΡΠΈΠΏ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ: ΡΠΈΠΏΡ Π²
ΠΏΡΠΈΠΌΠ΅Ρ: ZeroDivisionError
.
Python ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅, ΠΊΡΠΎΠΌΠ΅
ΠΠ»ΠΎΠΊ try
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ
Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ»ΠΎΠΊ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ
ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠ»ΠΎΠΊ finally
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π±Π»ΠΎΠΊΠΎΠ² try- ΠΈ except.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ, Python ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ
Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° try
:
ΠΡΠΈΠΌΠ΅Ρ
ΠΠ»ΠΎΠΊ try
ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ x
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ:
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
print (x)
except:
print (Β«ΠΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Β»)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±Π»ΠΎΠΊ try Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, Π±Π»ΠΎΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½.
ΠΠ΅Π· Π±Π»ΠΎΠΊΠ° try ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΡΡΠΎΡ ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ x
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ:
ΠΏΠ΅ΡΠ°ΡΡ (x)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.Π³. Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ
ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ:
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ²Π΅ΡΡΠΈ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊ try Π²ΡΠ·ΡΠ²Π°Π΅Ρ NameError
ΠΈ Π΄ΡΡΠ³ΠΎΠ΅
Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ:
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
print (x)
except NameError:
print («Variable x
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ «)
Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ:
print (» Π§ΡΠΎ-ΡΠΎ Π΅ΡΠ΅ ΠΏΠΎΡΠ»ΠΎ
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ «)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΡΡΠ°Π»ΡΠ½ΠΎΠ΅
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ else
Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ:
ΠΡΠΈΠΌΠ΅Ρ
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±Π»ΠΎΠΊ try
Π½Π΅
Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
print («ΠΡΠΈΠ²Π΅Ρ»)
except:
print («Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ «)
else:
print (» ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ «)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΠ°ΠΊΠΎΠ½Π΅Ρ
ΠΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π±Π»ΠΎΠΊ finally
, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΊΠ°Π·Π°Π½
Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π±Π»ΠΎΠΊ ΠΏΠΎΠΏΡΡΠΎΠΊ
Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΡΠΈΠΌΠ΅Ρ
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
print (x)
except:
print («Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ «)
Π½Π°ΠΊΠΎΠ½Π΅Ρ:
print (» ΠΠΎΠΏΡΡΠΊΠ°, ΠΊΡΠΎΠΌΠ΅ «Π·Π°Π²Π΅ΡΡΠ΅Π½Π°»)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ²:
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΎΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΠΎΡΠΊΡΡΡΡ ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ:
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
f = open («demofile.txt»)
f.write («Lorum Ipsum»)
Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ:
print («Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ
Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ» «)
Π½Π°ΠΊΠΎΠ½Π΅Ρ:
Ρ.Π·Π°ΠΊΡΡΡΡ ()
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ, Π½Π΅ ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠΊΡΡΡΡΠΌ.
ΠΡΠ·ΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ.
Π§ΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ (ΠΈΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ) ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ raise
.
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ·ΠΎΠ² ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅ΡΠ»ΠΈ x ΠΌΠ΅Π½ΡΡΠ΅ 0:
x = -1
, Π΅ΡΠ»ΠΈ x <0:
Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ («Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½ΠΈΠΆΠ΅ Π½Π΅Ρ ΡΠΈΡΠ΅Π»
Π½ΠΎΠ»Ρ «)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Raise
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π²ΡΠ΄Π°Π²Π°ΡΡ, ΠΈ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ·ΠΎΠ² TypeError, Π΅ΡΠ»ΠΈ x Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ:
x = «hello»
, Π΅ΡΠ»ΠΈ Π½Π΅ type (x) is int:
raise TypeError («Π’ΠΎΠ»ΡΠΊΠΎ
ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ «)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΌ »
.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Python ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° try, except ΠΈ finally
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Python
Python ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ (ΡΡΠΎ-ΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ).
ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½. ΠΡΠ»ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΡΡΠΎΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ A
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ B
, ΠΊΠΎΡΠΎΡΠ°Ρ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ C
.ΠΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ C
, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² C
, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ B
, Π° Π·Π°ΡΠ΅ΠΌ ΠΊ A
.
ΠΡΠ»ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΈ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π Python ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° try
.
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ try
.ΠΠΎΠ΄, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΠ°Π½ Π² ΠΏΡΠ½ΠΊΡΠ΅ , Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ½ΠΊΡΠ°
.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
# import module sys, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
import sys
randomList = ['Π°', 0, 2]
Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² randomList:
ΠΏΡΡΠ°ΡΡΡΡ:
print ("ΠΠ°ΠΏΠΈΡΡ Π΅ΡΡΡ", Π·Π°ΠΏΠΈΡΡ)
r = 1 / int (Π·Π°ΠΏΠΈΡΡ)
ΡΠ»ΠΎΠΌΠ°ΡΡ
ΠΡΠΎΠΌΠ΅:
print (Β«ΠΠΉ!Β», sys.exc_info () [0], Β«ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.Β»)
print ("Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ.")
Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ()
print ("ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΡ", entry, "is", r)
ΠΡΡ ΠΎΠ΄
ΠΠ°ΠΏΠΈΡΡ ΠΠΉ!ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π». Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ. ΠΠ°ΠΏΠΈΡΡ 0 ΠΠΉ! ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π». Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ. ΠΠ°ΠΏΠΈΡΡ 2 ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ 2 ΡΠ°Π²Π½ΠΎ 0,5
.
Π ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° randomList . ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊ try
.
ΠΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π±Π»ΠΎΠΊ , ΠΊΡΠΎΠΌΠ΅
, ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ (Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ). ΠΠΎ Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ , ΠΊΡΠΎΠΌΠ΅ Π±Π»ΠΎΠΊΠ°
(ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈ Π²ΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌ ΠΈΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ exc_info ()
Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ sys
. ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ a
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ValueError
, Π° 0
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ZeroDivisionError
.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² Python Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Exception
, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
# import module sys, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
import sys
randomList = ['Π°', 0, 2]
Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² randomList:
ΠΏΡΡΠ°ΡΡΡΡ:
print ("ΠΠ°ΠΏΠΈΡΡ Π΅ΡΡΡ", Π·Π°ΠΏΠΈΡΡ)
r = 1 / int (Π·Π°ΠΏΠΈΡΡ)
ΡΠ»ΠΎΠΌΠ°ΡΡ
ΠΊΡΠΎΠΌΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ e:
print ("ΠΠΉ!", e.__class__, "ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ".)
print ("Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ.")
Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ()
print ("ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΡ", entry, "is", r)
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΎΡΠΎΠ±ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² , ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠ½ΠΊΡΠ°
.
ΠΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ , ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ
.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ try
ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ , ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ except. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π°.
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
# ΡΠ΄Π΅Π»Π°ΠΉ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ
ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ
ΠΊΡΠΎΠΌΠ΅ ValueError:
# ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ValueError
ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ
except (TypeError, ZeroDivisionError):
# ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
# TypeError ΠΈ ZeroDivisionError
ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ
ΠΡΠΎΠΌΠ΅:
# ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΏΠ΅ΡΠ΅Π²Π°Π»
ΠΡΠ·ΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Python
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΡΠ½ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ raise
.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
>>> ΠΏΠΎΠ΄Π½ΡΡΡ KeyboardInterrupt
ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ):
...
KeyboardInterrupt
>>> ΠΏΠΎΠ΄Π½ΡΡΡ MemoryError ("ΠΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ")
ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ):
...
MemoryError: ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ
>>> ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
... a = int (input ("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:"))
...Π΅ΡΠ»ΠΈ a <= 0:
... ΠΏΠΎΠ΄Π½ΡΡΡ ValueError ("ΠΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ!")
... ΠΊΡΠΎΠΌΠ΅ ValueError as ve:
... ΠΏΠ΅ΡΠ°ΡΡ (Π²Π΅)
...
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ: -2
ΠΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ!
Python ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ else
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π²Π½ΡΡΡΠΈ try
ΠΏΡΠΎΡΠ΅Π» Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ. Π ΡΡΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ else
Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ try
.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ else Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ except.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ:
# ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π»
ΠΏΡΡΠ°ΡΡΡΡ:
num = int (input ("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ:"))
ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΡΠΈΡΠ»ΠΎ% 2 == 0
ΠΡΠΎΠΌΠ΅:
print (Β«ΠΠ΅ ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ!Β»)
Π΅ΡΠ΅:
ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ = 1 / ΡΠΈΡΠ»ΠΎ
ΠΏΠ΅ΡΠ°ΡΡ (ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ)
ΠΡΡ ΠΎΠ΄
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: 1 ΠΠ΅ ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ!
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: 4 0,25
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ 0, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ZeroDivisionError
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π²Π½ΡΡΡΠΈ , ΠΈΠ½Π°ΡΠ΅
Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ , Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
.
ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ: 0 ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ): Π€Π°ΠΉΠ» Β«<ΡΡΡΠΎΠΊΠ°>Β», ΡΡΡΠΎΠΊΠ° 7, Π² <ΠΌΠΎΠ΄ΡΠ»Π΅> ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ = 1 / ΡΠΈΡΠ»ΠΎ ZeroDivisionError: Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ
Python ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ... Π½Π°ΠΊΠΎΠ½Π΅Ρ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ try
Π² Python ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ finally
.ΠΡΠΎΡ ΠΏΡΠ½ΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΡΠΌΠΎΡΡΡ Π½ΠΈ Π½Π° ΡΡΠΎ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (GUI).
ΠΠΎ Π²ΡΠ΅Ρ
ΡΡΠΈΡ
ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ
ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΈΡΡΠΈΡΡ ΡΠ΅ΡΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΠ½Π° Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π°, Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠΈ) Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ finally
, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ.
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅:
f = open ("test.txt", encoding = 'utf-8')
# Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΡΠΎ:
f.close ()
ΠΡΠΎΡ ΡΠΈΠΏ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
.