Try catch and finally in python

Try catch and finally in python

Don’t learn to code. Code to learn!

  • Python — Обзор
  • Основы синтаксиса Python
  • Операторы в Python
  • Типы данных в Python
  • Условные конструкторы в Python
  • Циклы в Python
  • Функции в Python
  • Функциональное программирование в Python
  • ООП в Python
  • Модули в Python
  • Работа с файлами в Python
  • Обработка исключительных ситуаций в Python

Исключительной называется ситуация, в которой программа ведет себя не так, как предполагал разработчик. Причиной такой ситуации может быть как недоброкачественная работа программиста, так и недопонимание пользователя или умышленные действия взломщика.

Возьмем в качестве примера следующий скрипт. Программа спрашивает у пользователя число и делит сто на это число:

a = float(input("Введите число ")) print(100 / a)

Если пользователь введет информацию, которую мы от него ожидаем, то все сработает как нужно.

python exceptions без ошибок

Вот что произойдет просто потому, что мы не учли, что на ноль делить нельзя.

python exceptions zero division error

А вот что случится, если кто-то специально попытается поломать программу.

python exceptions broken

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

Блок try-except в Python

Уязвимый код заключается в блок try, после которого следует блок except, которому может задаваться возможная ошибка и реакция на нее:

try: a = float(input("Введите число:")) except ValueError: print ("Это не число!")

В данном примере программа пытается конвертировать информацию введенную пользователем в тип float, если же при этом возникнет ошибка класса ValueError, то выводится строка «This is not a valid number». В блоке except мы можем задать те классы ошибок на которые данный блок должен сработать, если мы не укажем ожидаемый класс ошибок, то блок будет реагировать на любую возникшую ошибку.

python exceptions handling valueerror

Блок try может содержать неограниченное количество блоков except:

try: a = float(input("Введите число: ") print (100 / a) except ValueError: print ("Это не число") except ZeroDivisionError: print ("На ноль делить нельзя")

python exceptions dual

Кроме того мы можем добавить пустой блок except, который будет срабатывать на непредвиденную выше ошибку. Пустой блок except всегда должен идти последним:

try: a = float(input("Введите число: ") print (100 / a) except ValueError: print ("Это не число!") except ZeroDivisionError: print ("На ноль делить нельзя!") except: print ("Неожиданная ошибка.")

Блок else в блоке try-except в Python

Блоку except можно добавить необязательный блок else, который сработает в случае, если программа выполнилась без ошибок:

try: a = float(input("Введите число: ") print (100 / a) except ValueError: print ("Это не число!") except ZeroDivisionError: print ("На ноль делить нельзя!") except: print ("Неожиданная ошибка.") else: print ("Код выполнился без ошибок")

В результате, мы получим следующее.

python exceptions else block

Блок finally в Python

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

try: a = float(input("Введите число: ") print (100 / a) except ValueError: print ("Это не число!") except ZeroDivisionError: print ("На ноль делить нельзя!") except: print ("Неожиданная ошибка.") else: print ("Код выполнился без ошибок") finally: print ("Я выполняюсь в любом случае!")

python exceptions finally block

Таким образом, используя обработку исключительных ситуаций, вы можете защитить программу от взлома, непредвиденного поведения и в будущем получить детальную информацию по логическим ошибкам, содержащимся в ней.

Источник

Python try…except…finally

Summary: in this tutorial, you’ll learn about the Python try. except. finally statement.

Introduction to Python try…catch…finally statement

The try. except statement allows you to catch one or more exceptions in the try clause and handle each of them in the except clauses.

The try. except statement also has an optional clause called finally :

try: # code that may cause exceptions except: # code that handle exceptions finally: # code that clean upCode language: PHP (php)

The finally clause always executes whether an exception occurs or not. And it executes after the try clause and any except clause.

The following flowchart illustrates the try. catch. finally clause:

Python try catch finally statement

Python try…catch…finally statement examples

The following example uses the try. catch. finally statement:

a = 10 b = 0 try: c = a / b print(c) except ZeroDivisionError as error: print(error) finally: print('Finishing up.') Code language: PHP (php)
division by zero Finishing up.

In this example, the try clause causes a ZeroDivisionError exception both except and finally clause executes.

The try clause in the following example doesn’t cause an error. Therefore, all statements in the try and finally clauses execute:

a = 10 b = 2 try: c = a / b print(c) except ZeroDivisionError as error: print(error) finally: print('Finishing up.') Code language: PHP (php)
5.0 Finishing up.Code language: CSS (css)

Python try…finally statement

The catch clause in the try. catch. finally statement is optional. So you can write it like this:

try: # the code that may cause an exception finally: # the code that always executes Code language: PHP (php)

Typically, you use this statement when you cannot handle the exception but you want to clean up resources. For example, you want to close the file that has been opened.

Summary

  • Use Python try. catch. finally statement to execute a code block whether an exception occurs or not.
  • Use the finally clause to clean up the resources such as closing files.

Источник

Python try catch exceptions with simple examples

A program in python terminates as it encounters an error. Mainly there are two common errors; syntax error and exceptions.

Python exceptions are errors that happen during execution of the program. Python try and except statements are one of the important statements that can catch exceptions. I

n this tutorial we will cover Python exceptions in more details and will see how python try except statements help us to try catch these exceptions along with examples. Moreover, we will also learn about some of the built-in exceptions in python and how to use them.

Difference between Python Exception and Error

Python exceptions and errors are two different things. There are some common differences between them which distinguish both from each other. These are the following differences between them.

  • Errors cannot be handled, while Python exceptions can be catchd at the run time.
  • The error indicates a problem that mainly occurs due to the lack of system resources while Exceptions are the problems which can occur at runtime and compile time. It mainly occurs in the code written by the developers.
  • An error can be a syntax (parsing) error, while there can be many types of exceptions that could occur during the execution.
  • An error might indicate critical problems that a reasonable application should not try to catch, while an exception might indicate conditions that an application should try to catch.

Different type of errors in Python

Errors are the problems in a program due to which the program will stop the execution. There can be different types of errors which might occur while coding. Some of which are Syntax error, recursion error and logical error. In this section we will closely look at each of these errors in more detail.

Syntax error in Python

When we run our python code, the first thing that interpreter will do is convert the code into python bytecode which then will be executed. If the interpreter finds any error/ invalid syntax during this state, it will not be able to convert our code into python code which means we have used invalid syntax somewhere in our code. The good thing is that most of the interpreters show us/give hints about the error which helps us to resolve it. If you are a beginner to Python language, you will see syntaxError a lot while running your code.

Here is an example showing the syntax error.

# defining variables a = 10 b = 20

Python Try Except | Exception Handling Examples

Output:

You can see the python is indicating the error and pointing to the error.

Recursion error in Python

This recursion error occurs when we call a function. As the name suggests, recursion error when too many methods, one inside another is executed with one an infinite recursion.

See the following simple example of recursion error:

# defining a function: def main(): return main() # calling the function main()

Python Try Except | Exception Handling Examples

Output:

See the last line, which shows the error. We get a recursionError because the function calls itself infinitely times without any break or other return statement.

Python exceptions

Sometimes, even if the syntax of the expression is correct, it may still cause an error when it executes. Such errors are called logical errors or exceptions. Logical errors are the errors that are detected during execution time and are not unconditionally fatal. Later in the tutorial we will cover how to catch these errors using python try except method.

Again there can be many different kinds of Python exceptions you may face. Some of them are typeError , ZeroDivisionError , importError and many more. We will see some of the examples of exceptions here.

See the example which gives typeError when we try to add two different data types.

# string data type name = "bashir" # integer data type age = 21 # printing by adding int and string print(age + name)

Python Try Except | Exception Handling Examples

Here is one more example which gives zeroDivisionError when we try to divide some number by zero.

 print(23/0) ZeroDivisionError: division by zero

Now see the last example of import module error . This error occurs when we import a module that does not exist.

Источник

Читайте также:  Read file to matrix python
Оцените статью