Обработка исключений Python

Python

Обработка исключений Python, инженеры-разработчики Python часто сталкиваются с теми или иными проблемами в процессе работы. В этой статье мы поделимся с читателями обработкой исключений Python.

Определение: интерпретатор Python обнаруживает ошибку и вызывает исключение (также позволяет программистам самостоятельно вызывать исключения).Программист пишет специальный код для перехвата этого исключения (этот код не имеет ничего общего с логикой программы, но связан с обработкой исключений), если захват успешный. Затем войдите в другую ветку обработки, выполните настроенную для нее логику, чтобы программа не вылетала, это обработка исключений.

Требование: не позволяйте программе завершаться, когда программа сталкивается с проблемой, а продолжайте выполнение до тех пор, пока не возникнет ошибка.

Значение: синтаксический анализатор python выполняет программу, и при обнаружении ошибки запускается исключение.После того, как исключение срабатывает и не обрабатывается, программа завершается на текущем исключении, и последующий код не будет выполняться, поэтому вы должны предоставить Механизмы обработки исключений для повышения надежности и отказоустойчивости ваших программ.

попробуй... кроме... иначе

Формат:

try:

заявление т

кроме кода ошибки как e:

Заявление 1

кроме кода ошибки как e:

Заявление 2

...

кроме кода ошибки как e:

заявление п

else:

заявление д

Примечание: оператор else является необязательным.

Роль: используется для обнаружения ошибок в блоке оператора try, чтобы оператор exclude собирал информацию об ошибке и обрабатывал ее.

Логика: Когда программа выполняется до оператора try-except-else 1. Если при выполнении оператора try "t" возникает ошибка, будет сопоставлен первый код ошибки. Если он совпадает, будет выполнен соответствующий "оператор" 2. Если «оператор попытки» выполняется с ошибкой выполнения, нет соответствующего исключения, ошибка будет передана оператору попытки предыдущего уровня. Или перейти на верхний уровень программы 3. Если нет ошибки при выполнении try «оператор t», выполнить «оператор e» под else (у вас должно быть) 4. Если есть ошибка при попытке «оператора t» выполняется, сопоставьте код ошибки, выполните соответствующий «оператор», а затем не будет выполнять последующие операторы, кроме операторов.

Пример кода:

>>> s1 = 'a'

>>> int(s1)

Traceback (most recent call last):

File "<pyshell#1>", line 1, in

int(s1)

ValueError: invalid literal for int() with base 10: 'a'

>>>

Как мы можем обработать исключение и перейти к следующему шагу?

s1 = 'a'

try:

int(s1)

except ValueError as e:

print(e)

print('Ошибка, проверьте код!')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

invalid literal for int() with base 10: 'a'

Что-то пошло не так, проверьте код! !

>>>

многоотраслевой

Многоветвь используется, когда в результате операции могут возникнуть два или более исключений.

try:

msg = input('Пожалуйста, введите:')

num = int(msg)

nm = list(num)

except TypeError as e:

print(e)

except ValueError as e:

print(e)

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

Пожалуйста, введите: 111

'int' object is not iterable

>>>

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

Пожалуйста, введите: а

invalid literal for int() with base 10: 'a'

>>>

Универсальное исключение

Среди исключений python есть универсальное исключение: Exception, которое может перехватить любое исключение.

s1 = 'a'

try:

int(s1)

except Exception as e:

print(e)

print('Ошибка, проверьте код!')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

invalid literal for int() with base 10: 'a'

Что-то пошло не так, проверьте код! !

>>>

Точно такой же, как предыдущий код.

оператор try-finally

Оператор выполняет окончательный код независимо от того, возникает ли исключение.

s1 = ввод ('ввод:')

try:

int(s1)

except ValueError as e:

print(e)

else:

print('Если в блоке кода try нет исключения, выполнить меня')

finally:

print('Независимо от того, есть исключение или нет, модуль будет выполнен, обычно для очистки')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

Вход: 10

Если в блоке кода try нет исключения, выполните меня

Модуль выполняется независимо от исключения или нет, обычно для очистки

>>>

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

ввод: а

invalid literal for int() with base 10: 'a'

Модуль выполняется независимо от исключения или нет, обычно для очистки

>>>