Виняток — це неочікувана подія, яка виникає під час виконання програми. Це також відомо як помилка виконання. Коли виникає ця помилка, Python генерує виняток під час виконання, і це можна обробити, що запобігає перериванню вашої програми. У цій статті ми зосередимося на «Як ми можемо надрукувати виняток у Python?»
Що таке винятки в Python?
в Python , Виняток - це тип Помилки в програмі. Помилка називається «винятком», коли програма синтаксично правильна, але під час її виконання виникає помилка.
приклад : у цьому прикладі ми намагаємося поділити число на нуль, щоб отримати помилку виконання.
поточна дата в java
Python3
num1>=> 5> num2>=> 0> print>(num1>/> num2)> |
>
>
Вихід
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero>
Ця програма є синтаксично правильною . Єдина проблема тут через номери, які використовуються для операції. Оскільки ми не можемо поділити жодне число на 0, це видає помилку. Таким чином, це приклад «Виключення».
Як виглядають винятки?
У наведеній вище програмі, коли ми її виконали, ми отримали виняток. Помилка, яка виникла, показала рядок, у якому сталася помилка, точний рядок і тип помилки.
Показаний тип помилки називається «Виняток». За допомогою винятків ми дізнаємося про проблему, яка виникла. Винятком у наведеній вище програмі є ZeroDivisionError: ділення на нуль .
приклад : тут присвоєння змінної var1 виконується an невизначена змінна , var2.
Python3
основи java
var1>=> var2> |
>
>
Вихід
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined>
Вище ми бачимо Виняток як NameError: ім’я var2 не визначено .
Обробка винятків у Python
Винятки можуть часом дуже турбувати. Ось де з’являється концепція обробки винятків. Завдяки обробці винятків ми можемо легко обробляти винятки для користувача, а не просто викидати користувачеві помилки.
приклад: У цій програмі вхідні дані мають тип «int». Але якщо ми введемо в нього символ, це видасть «ValueError». Це може заплутати користувача багато разів. Тут ми виконуємо обробку винятків. Замість того, щоб видати помилку значення та заплутати користувача, ми відобразимо оператор із пропозицією користувачеві спробувати ще раз, і ми дамо можливість користувачеві спробувати ввести числа ще раз.
Python3
num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)> |
>
>
Вихід
Enter num1: 1 Enter num2: b Traceback (most recent call last): File 'D:/PycharmProjects/pythonProject2/main.py', line 15, in num2 = int(input('Enter num2: ')) ValueError: invalid literal for int() with base 10: 'b'> Використання try, крім і else
У цьому коді виконується цикл while, тому що ми хочемо дозволити користувачеві спробувати, доки вхідні дані не будуть надані правильним чином. Ми використали пункт «try». Речення try перевіряє наявність помилок у рядках цього речення.
Якщо трапляється виняток, відбувається перехід до пропозиції «except» і друкується надане нами повідомлення про помилку. Ми написали два пропозиції крім, одне з ValueError, а інше з ZeroDivisionError. Кожен із цих пунктів стосується відповідних винятків і друкує відповідні повідомлення.
Потім, нарешті, ми написали речення else. Якщо помилок не виявлено, виконується блок else. У блоці else ми друкуємо приватне від ділення і виходимо з циклу.
колекція java
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as e:> >print>(>'Try putting an integer value.
Error Occured:'>, e)> >except> ZeroDivisionError as ex:> >print>(>'Division by zero is invalid!
Error Occured:'>, ex)> >else>:> >print>(answer)> >break> |
>
>
Вихід:

Винятки для друку
Тепер, коли ми побачили, що саме таке винятки, як вони виглядають і як з ними працювати, тепер ми подивимося на їх друк.
підписка на azure
Щоб надрукувати винятки, ми використовуємо «як» ключове слово Python.
Ми використали той самий приклад, що й раніше. Ми використали ключове слово «as» і оголосили змінну «ve» для «ValueError» і «zde» для «ZeroDivisionError». Тоді, якщо ми стикаємося з будь-якими винятками, ми пишемо код для друку цього винятку. Але все одно ми не можемо побачити отриманий тип винятку.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(ve)> >except> ZeroDivisionError as zde:> >print>(zde)> >else>:> >print>(answer)> >break> |
>
>
Вихід:
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 0 Enter num2: 0 division by zero Enter num1: 16 Enter num2: 4 16 / 4 = 4.0>
Тип винятку друку
Щоб побачити тип винятку, ми можемо скористатися функцією type().
Тут ми використали функцію type(), щоб дізнатися тип винятку, з яким ми зіткнулися під час виконання коду.
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(>type>(ve), ve)> >except> ZeroDivisionError as zde:> >print>(>type>(zde), zde)> >else>:> >print>(answer)> >break> |
np де
>
>
Вихід
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 1 Enter num2: 0 division by zero Enter num1: 4 Enter num2: 2 4 / 2 = 2.0>