Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
6 views

Python Exception Handling

Pdf

Uploaded by

goelyash351
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Python Exception Handling

Pdf

Uploaded by

goelyash351
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Python Exception Handling

Last Updated : 30 Aug, 2024

We have explored basic python till now from Set 1 to 4 (Set 1 | Set 2 | Set 3 | Set 4).

In this article, we will discuss how to handle exceptions in Python using try, except,
and finally statements with the help of proper examples.

Error in Python can be of two types i.e. Syntax errors and Exceptions. Errors are
problems in a program due to which the program will stop the execution. On the
other hand, exceptions are raised when some internal events occur which change the
normal flow of the program.

Different types of exceptions in python:

In Python, there are several built-in Python exceptions that can be raised when an
error occurs during the execution of a program. Here are some of the most common
types of exceptions in Python:

SyntaxError: This exception is raised when the interpreter encounters a syntax


error in the code, such as a misspelled keyword, a missing colon, or an unbalanced
parenthesis.
TypeError: This exception is raised when an operation or function is applied to an
object of the wrong type, such as adding a string to an integer.
NameError: This exception is raised when a variable or function name is not found
in the current scope.
IndexError: This exception is raised when an index is out of range for a list, tuple,
or other sequence types.
KeyError: This exception is raised when a key is not found in a dictionary.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
ValueError: Thisthat
acknowledge exception
you have is raised
read when a function
and understood or method
our Cookie Policy & PrivacyisPolicy
called with an
invalid argument or input, such as trying Got It ! to convert a string to an integer when the
string does not represent a valid integer.
AttributeError: This exception is raised when an attribute or method is not found
on an object, such as trying to access a non-existent attribute of a class instance.
IOError: This exception is raised when an I/O operation, such as reading or writing
a file, fails due to an input/output error.
ZeroDivisionError: This exception is raised when an attempt is made to divide a
number by zero.
Impor tError: This exception is raised when an import statement fails to find or
load a module.

These are just a few examples of the many types of exceptions that can occur in
Python. It’s important to handle exceptions properly in your code using try-except
blocks or other error-handling techniques, in order to gracefully handle errors and
prevent the program from crashing.

Difference between Syntax Error and Exceptions


Syntax Error: As the name suggests this error is caused by the wrong syntax in the
code. It leads to the termination of the program.

Example:

There is a syntax error in the code . The ‘if' statement should be followed by a colon
( :), and the ‘print' statement should be indented to be inside the ‘if' block.

Python

amount = 10000
if(amount > 2999)
print("You are eligible to purchase Dsa Self Paced")

Output:

We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Except ions: Exceptions are raised when the program is syntactically correct, but the
code results in an error. This error does not stop the execution of the program,
however, it changes the normal flow of the program.

Example:

Here in this code as we are dividing the ‘marks’ by zero so a error will occur known as
‘ZeroDivisionError ’. ‘ZeroDivisionError ’ occurs when we try to divide any number by
0.

Python

marks = 10000
a = marks / 0
print(a)

Output:

In the above example raised the ZeroDivisionError as we are trying to divide a number
by 0.

Note: Exception is the base class for all the exceptions in Python. You can check the
exception hierarchy here.

Example:

1) TypeError: This exception is raised when an operation or function is applied to an


object of the wrong type. Here’s an example:
Here a ‘TypeError ’ is raised as both the datatypes are different which are being
added.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Python
x = 5
y = "hello"
z = x + y

output:
Traceback (most recent call last):
File "7edfa469-9a3c-4e4d-98f3-5544e60bff4e.py", line 4, in <module>
z = x + y
TypeError: unsupported operand type(s) for +: 'int' and 'str'

try catch block to resolve it:


The code attempts to add an integer (‘x') and a string (‘y') together, which is not a
valid operation, and it will raise a ‘TypeError'. The code used a ‘try' and ‘except'
block to catch this exception and print an error message.

Python

x = 5
y = "hello"
try:
z = x + y
except TypeError:
print("Error: cannot add an int and a str")

Output

Error: cannot add an int and a str

Try and Except Statement – Catching Exceptions


Try and except statements are used to catch and handle exceptions in Python.
Statements that can raise exceptions are wrapped inside the try block and the
statements that
We use cookies handle
to ensure youthe
haveexception are written
the best browsing inside
experience on ourexcept
website.block.
By using our site, you
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Example: Here we are trying to access the array element whose index is out of bound
and handle the corresponding exception.
Python

a = [1, 2, 3]
try:
print ("Second element = %d" %(a[1]))

print ("Fourth element = %d" %(a[3]))

except:
print ("An error occurred")

Output

Second element = 2
An error occurred

In the above example, the statements that can cause the error are placed inside the
try statement (second print statement in our case). The second print statement tries
to access the fourth element of the list which is not there and this throws an
exception. This exception is then caught by the except statement.

Catching Specific Exception


A try statement can have more than one except clause, to specify handlers for
different exceptions. Please note that at most one handler will be executed. For
example, we can add IndexError in the above code. The general syntax for adding
specific exceptions are –

try:
# statement(s)
except IndexError:
# statement(s)
except ValueError:
# statement(s)

We use cookies
Example: to ensure
Catching you haveexceptions
specific the best browsing experience
in the Pythonon our website. By using our site, you
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
The code defines a function ‘fun(a)' that calculates b based on the input a. If a is less
than 4, it attempts a division by zero, causing a ‘ZeroDivisionError'. The code calls
fun(3) and fun(5) inside a try-except block. It handles the ZeroDivisionError for
fun(3) and prints “ ZeroDivisionError Occurred and Handled.” The ‘ NameError' block
is not executed since there are no ‘NameError' exceptions in the code.

Python

def fun(a):
if a < 4:

b = a/(a-3)
print("Value of b = ", b)

try:
fun(3)
fun(5)
except ZeroDivisionError:
print("ZeroDivisionError Occurred and Handled")
except NameError:
print("NameError Occurred and Handled")

Output

ZeroDivisionError Occurred and Handled

If you comment on the line fun(3), the output will be

NameError Occurred and Handled

The output above is so because as soon as python tries to access the value of b,
NameError occurs.

Try with Else Clause


In Python, you can also use the else clause on the try-except block which must be
present after all the except clauses. The code enters the else block only if the try
We usedoes
clause cookiesnot
to ensure
raise you have the best browsing experience on our website. By using our site, you
an exception.
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Tr y wit h else clause
The code defines a function AbyB(a, b) that calculates c as ((a+b) / (a-b)) and handles
a potential ZeroDivisionError. It prints the result if there’s no division by zero error.
Calling AbyB(2.0, 3.0) calculates and prints -5.0, while calling AbyB(3.0, 3.0)
attempts to divide by zero, resulting in a ZeroDivisionError, which is caught and “ a/b
results in 0” is printed.

Python

def AbyB(a , b):


try:
c = ((a+b) / (a-b))
except ZeroDivisionError:
print ("a/b result in 0")
else:
print (c)
AbyB(2.0, 3.0)
AbyB(3.0, 3.0)

Output:

-5.0
a/b result in 0

Finally Keyword in Python


Python provides a keyword finally, which is always executed after the try and except
blocks. The final block always executes after the normal termination of the try block
or after the try block terminates due to some exception. The code within the finally
block is always executed.

Syntax:

try:
# Some Code....
except:
# optional block
We use# cookies
Handling of you
to ensure exception (if
have the best required)
browsing experience on our website. By using our site, you
else: acknowledge that you have read and understood our Cookie Policy & Privacy Policy
# execute if no exception
finally:
# Some code .....(always executed)

Example:

The code attempts to perform integer division by zero, resulting in a


ZeroDivisionError. It catches the exception and prints “ Can’t divide by zero.”
Regardless of the exception, the finally block is executed and prints “ T his is always
executed.”

Python

try:
k = 5//0
print(k)

except ZeroDivisionError:
print("Can't divide by zero")

finally:
print('This is always executed')

Output:

Can't divide by zero


This is always executed

Raising Exception
The raise statement allows the programmer to force a specific exception to occur. The
sole argument in raise indicates the exception to be raised. This must be either an
exception instance or an exception class (a class that derives from Exception).

This code intentionally raises a NameError with the message “ Hi t here” using the
raise statement within a try block. Then, it catches the NameError exception, prints
“An except ion,” and re-raises the same exception using raise. This demonstrates
how exceptions can be raised and handled in Python, allowing for custom error
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
messages and further exception propagation.
acknowledge that you have read and understood our Cookie Policy & Privacy Policy

Python
try:
raise NameError("Hi there")
except NameError:
print ("An exception")
raise

The output of the above code will simply line printed as “An exception” but a
Runtime error will also occur in the last due to the raise statement in the last line. So,
the output on your command line will look like

Traceback (most recent call last):


File "/home/d6ec14ca595b97bff8d8034bbf212a9f.py", line 5, in <module>
raise NameError("Hi there") # Raise Error
NameError: Hi there

Advantages of Exception Handling:

Improved program reliability: By handling exceptions properly, you can prevent


your program from crashing or producing incorrect results due to unexpected
errors or input.
Simplified error handling: Exception handling allows you to separate error
handling code from the main program logic, making it easier to read and maintain
your code.
Cleaner code: With exception handling, you can avoid using complex conditional
statements to check for errors, leading to cleaner and more readable code.
Easier debugging: When an exception is raised, the Python interpreter prints a
traceback that shows the exact location where the exception occurred, making it
easier to debug your code.

Disadvantages of Exception Handling:

Per formance overhead: Exception handling can be slower than using conditional
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
statements to check for errors, as the interpreter has to perform additional work to
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
catch and handle the exception.
Increased code complexity: Exception handling can make your code more
complex, especially if you have to handle multiple types of exceptions or
implement complex error handling logic.
Possible security risks: Improperly handled exceptions can potentially reveal
sensitive information or create security vulnerabilities in your code, so it’s
important to handle exceptions carefully and avoid exposing too much
information about your program.

Overall, the benefits of exception handling in Python outweigh the drawbacks, but
it’s important to use it judiciously and carefully in order to maintain code quality and
program reliability.

Python Programming Tutorial | Exception Handling in Python | Geeksfor…


Geeksfor…

This article is contributed by Nikhil Kumar Singh(nickzuck_007)

Looking to dive into the world of programming or sharpen your Python skills? Our
Master Pyt hon: Complete Beginner to Advanced Course is your ultimate guide to
becoming proficient in Python. This course covers everything you need to build a
solid foundation from fundamental programming concepts to advanced techniques.
With hands-on projects, real-world examples, and expert guidance, you'll gain the
confidence to tackle complex coding challenges. Whether you're starting from
scratch or aiming to enhance your skills, this course is the perfect fit. Enroll now and
master Python, the language of the future!

We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our Cookie Policy & Privacy Policy
N Nikhil Kumar Singh 237

You might also like