32 C
Jaipur
Saturday, October 24, 2020

5 Python Examples to Handle Exceptions using try, except and finally

Must read

Check Out Oppo Find X2 League of Legends Special Edition Right Here

After much anticipation, Chinese phone maker, Oppo unveiled the second generation of its Find X series, the Oppo Find X2 and Find X2 Pro,...

apple: Apple fixes 6 malicious apps posing as Adobe Flash installers – Latest News

The malicious apps masquerading as Adobe Flash installer are not going to go away anytime soon as Apple has once again fixed six more...

xbox: Xbox head Phil Spencer hints at xCloud streaming sticks for TV – Latest News

San Francisco, Microsoft's head of gaming and Xbox, Phil Spencer, has said the company is planning TV streaming sticks for its xCloud gaming service. In...

China’s Law Will Ban Addictive Online Content to Protect Kids

To keep its youth from getting addicted to digital content online, China is introducing new stricter laws in its constitution. According to reports from...

Exceptions in python are error thrown by syntactically correct statements.

They terminate the execution of the script. Some example of exceptions are NameError, TypeError, AssertionError, ConnectionAbortedError, etc.

These abortions can be handled to prevent the script from terminating unpredictable. Description of all python exceptions can be found here.

This tutorial covers the following examples:

  1. Python try-except Block
  2. Multiple Exception Handling in Python
  3. Python finally Block – When Exception Occurs
  4. Python finally Block – When No Exception
  5. Python Nested try-except Block

Have a look at the following code:

t
a = 12
s = "hello"
print(a+s)

Output:

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Here the print function syntax is correct, yet addition of an integer and a string is incorrect. Hence TypeError is raised by python interpreter.

1. Python try-except Block

The keywords involved in handling of exceptions are try, except and finally.

Try block must be followed by an except block. Addition of finally block is optional.

The statements in the try block are executed line by line. If execution of any statement throws an exception. The remaining statements in this block are skipped and execution of except block starts.

Example:

a = 12
s = "hello"
try:
    print("inside try")
    print(a + s) # will raise TypeError
    print("Printed using original data types")
except TypeError: # will handle only TypeError
    print("inside except")
    print(str(a) + s)
    print("Printed using type-casted data types")

Output:

inside try
inside except
12hello
Printed using type-casted data types

Here TypeError was raised in the execution of line 2 inside try block. Hence execution of remaining statements was skipped and except block execution started. Note that the exceptions to be handled are mentioned along side the except keyword.

If you are new to python, this might help you get a jumpstart: 5 Examples to Jumpstart Object Oriented Programming in Python

2. Multiple Exception Handling in Python

Multiple exceptions can be handled using a single try-except block. This is done by mentioning the exception names, comma-separated inside parentheses, just after except keyword.

try:
    if (3 + 4 - 5) > 0:
        a = 3
        a.append("hello")  # throws AttributeError
    else:
        print("hello" + 4)  # throws TypeError
except (AttributeError, TypeError) as e:
    print("Error occurred:", e)

Output:

Error occurred: 'int' object has no attribute 'append'

For more details python if-else, refer to this: 9 Python if, if else, if elif Command Examples

3. Python finally Block – When Exception Occurs

finally is the block that resides after except block. This block of statements is executed no matter whether an exception was encountered or not.

Adding finally block to the previous example:

try:
    if (3 + 4 - 5) > 0:
        a = 3
        a.append("hello")  # throws Attribute Error
    else:
        print("hello" + 4)  # throws TypeError
except (AttributeError, TypeError) as e:
    print("Error occurred:", e)
finally:
    print("try except block successfully executed")

Output:

Error occurred: 'int' object has no attribute 'append'
try except block successfully executed

Here the statements in try raised an exception, except block was executed and then the finally block.

4. Python finally Block – When No Exception

Having a look at another example:

try:
    if (3 + 4 - 5) < 0:
        a = 3
        print(a + 5)  # simple addition
    else:
        print("hello" + "4")  # string concatenation
except (AttributeError, TypeError) as e:
    print("Error occurred:", e)
finally:
    print("try except block successfully executed")

Output:

8
try except block successfully executed

Here we see that finally block was executed even if the except block was never executed.

If statements inside except and finally block raises exception, the remaining script execution will terminate.

5. Python Nested try-except Block

A try-except block can be surrounded by another try-except block.

import json
import sys

try:
    with open("hello.json") as fp:
        try:
            json_dict = json.load(fp)
        except json.JSONDecodeError:
            print("Json file does not exist")
    print(json_dict)
except:
    print("error occurred while parsing json:", sys.exc_info()[1])

Output: if hello.json exists

{'name': 'Aanisha', 'surname': ‘Mishra'}

Output: if hello.json does not exist

error occurred while parsing json: [Errno 2] No such file or directory: 'hello.json'

Output: if hello.json is not a valid json file

Json file does not exist
error occurred while parsing json: name 'json_dict' is not defined

This form of solution can handle exception raised inside except or finally block as well.

For additional reading, more detailed handling strategies can be found here.

Source link

- Advertisement -

More articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest article

Check Out Oppo Find X2 League of Legends Special Edition Right Here

After much anticipation, Chinese phone maker, Oppo unveiled the second generation of its Find X series, the Oppo Find X2 and Find X2 Pro,...

apple: Apple fixes 6 malicious apps posing as Adobe Flash installers – Latest News

The malicious apps masquerading as Adobe Flash installer are not going to go away anytime soon as Apple has once again fixed six more...

xbox: Xbox head Phil Spencer hints at xCloud streaming sticks for TV – Latest News

San Francisco, Microsoft's head of gaming and Xbox, Phil Spencer, has said the company is planning TV streaming sticks for its xCloud gaming service. In...

China’s Law Will Ban Addictive Online Content to Protect Kids

To keep its youth from getting addicted to digital content online, China is introducing new stricter laws in its constitution. According to reports from...

This AI App Detects Internal Issues in Cars Just by Their Sounds

Although modern cars come equipped with all kinds of advanced technologies, I am pretty sure a strange sound coming out of your vehicle has...