πŸ”₯ Как Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации Π² Python: простой Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

ГСнСрация ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций Π² Python осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова raise. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ подклассы класса Exception. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

class CustomException(Exception):
    pass

try:
    raise CustomException("Π­Ρ‚ΠΎ ΠΌΠΎΠ΅ собствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅")
except CustomException as e:
    print(e)

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Python, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ValueError ΠΈΠ»ΠΈ TypeError, для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ситуациях:

try:
    x = "abc"
    if not isinstance(x, int):
        raise ValueError("ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ Ρ†Π΅Π»ΠΎΠ΅ число")
except ValueError as e:
    print(e)

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации Π² Python

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации Π² Python ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ события, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π΅Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариях, позволяя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ошибки ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Π΅ ситуации.

ИспользованиС встроСнных ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Python прСдоставляСт мноТСство встроСнных ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. НапримСр, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ TypeError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° происходит нСсоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° являСтся нСдопустимым.


def divide(a, b):
    if b == 0:
        raise ValueError("Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ")
    return a / b

try:
    result = divide(10, 0)
except ValueError as e:
    print("ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка:", str(e))

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ встроСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ дСлСния Π½Π° ноль. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° raise ΠΌΡ‹ создаСм ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ сообщСниСм ΠΎΠ± ошибкС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ° try-except.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

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


class CustomException(Exception):
    pass

def check_value(x):
    if x < 0:
        raise CustomException("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ")

try:
    check_value(-5)
except CustomException as e:
    print("ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка:", str(e))

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм собствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ CustomException, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ наслСдуСтся ΠΎΡ‚ встроСнного класса Exception. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ raise для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС нуля. Π’ Π±Π»ΠΎΠΊΠ΅ try-except ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ошибкС.

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

ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сцСнарии ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π±Π»ΠΎΠΊΠΎΠ² try-except для Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅.


try:
    # НСкоторый ΠΊΠΎΠ΄
except ValueError:
    # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ValueError
except ZeroDivisionError:
    # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ZeroDivisionError
except Exception as e:
    # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ
    print("ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка:", str(e))

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ прСдусмотрСли ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций: ValueError ΠΈ ZeroDivisionError. Если происходит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ except Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π±Π»ΠΎΠΊΠΎΠΌ except Exception. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅.

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

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

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

OOP 36 ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Try Except Finally Python

Всё ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ Π² Python

ΠžΡΠ½ΠΎΠ²Ρ‹ Python #15: Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”‘ Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСксы массива numpy python: простыС способы ΠΈ совСты

πŸ”₯ Π›Π΅Π³ΠΊΠΈΠΉ способ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π² Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…! πŸ”₯

import math python Ρ‡Ρ‚ΠΎ это: ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math Π² Python для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со матСматичСскими функциями

πŸ”₯ Как Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации Π² Python: простой Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”“ Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Excel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄

πŸ” Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ число ΠΏΠΈ Π² Python: Π»Π΅Π³ΠΊΠΈΠΉ способ ΠΈ основныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸš€ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹