Try, Except, else і Finally у Python

Виняток — це неочікувана подія, яка виникає під час виконання програми. Він також відомий як a Помилка виконання . Коли ця помилка виникає, Python генерує виняток під час виконання, який можна обробити, що запобігає перериванню вашої програми.

приклад: У цьому коді система не може розділити число на нуль, тому виникає виняток.

Python3




a> => 5> b> => 0> print> (a> /> b)>

Вихід

Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero 

Обробка винятків за допомогою try, osim, else і finally

  • Спробуй : цей блок перевіряє виключену помилку
  • За винятком : Тут ви можете обробити помилку
  • Інакше : якщо винятків немає, цей блок буде виконано
  • Нарешті : Остаточний блок завжди виконується незалежно від того, генерується виняткова ситуація чи ні

Синтаксис Python Try, Except, else і Finally

try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed) 

Робота ' спробувати і «крім»

Давайте спочатку розберемося, як Python спробувати і крім працює

  • Перший спробувати виконується пропозиція, тобто код між спробувати і крім пункт.
  • Якщо немає винятків, то тільки спробувати пункт буде виконано, крім пункт не буде виконано.
  • Якщо трапляється будь-який виняток, спробувати речення буде пропущено і крім пункт буде виконуватися.
  • Якщо трапляється будь-який виняток, але крім пункт у коді не обробляє його, він передається зовнішньому спробувати заяви. Якщо виняток залишається необробленим, виконання припиняється.
  • А спробувати оператор може мати більше одного крім пункт.

приклад: Давайте спробуємо взяти цілочисельний ввід користувача та викинути виняток у блоці за винятком.

Python3




# Python code to illustrate working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )>

Вихід:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero 

Перехоплення кількох винятків у Python

Ось приклад, який демонструє, як використовувати кілька пропозицій, крім винятків, для обробки різних винятків:

Python3




try> :> > x> => int> (> input> (> 'Enter a number: '> ))> > result> => 10> /> x> except> ZeroDivisionError:> > print> (> 'You cannot divide by zero.'> )> except> ValueError:> > print> (> 'Invalid input. Please enter a valid number.'> )> except> Exception as e:> > print> (f> 'An error occurred: {e}'> )>

Вихід:

Enter a number: An error occurred: EOF when reading a line 

Речення Else в Python

Код потрапляє в блок else, лише якщо пропозиція try не викликає винятку.

приклад: Інакше блок буде виконано лише тоді, коли немає винятків .

Python3




# Python code to illustrate working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > else> :> > print> (> 'Yeah ! Your answer is :'> , result)> > # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )>

Вихід:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero 

Ключове слово Python finally

Python надає ключове слово нарешті , який завжди виконується після блоків try і крім. Блок finally завжди виконується після звичайного завершення блоку try або після завершення блоку try через певний виняток. Навіть якщо ви повернетеся в блок винятків, блок finally буде виконано

приклад: Давайте спробуємо створити виняток у блоці за винятком і, нарешті, виконаємо виняток, чи буде він створений, чи ні

Python3




# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > else> :> > print> (> 'Yeah ! Your answer is :'> , result)> > finally> :> > # this block is always executed> > # regardless of exception generation.> > print> (> 'This is always executed'> )> # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )>

Вихід:

Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed