Book Image

Python Fundamentals

By : Ryan Marvin, Mark Nganga, Amos Omondi
Book Image

Python Fundamentals

By: Ryan Marvin, Mark Nganga, Amos Omondi

Overview of this book

After a brief history of Python and key differences between Python 2 and Python 3, you'll understand how Python has been used in applications such as YouTube and Google App Engine. As you work with the language, you'll learn about control statements, delve into controlling program flow and gradually work on more structured programs via functions. As you settle into the Python ecosystem, you'll learn about data structures and study ways to correctly store and represent information. By working through specific examples, you'll learn how Python implements object-oriented programming (OOP) concepts of abstraction, encapsulation of data, inheritance, and polymorphism. You'll be given an overview of how imports, modules, and packages work in Python, how you can handle errors to prevent apps from crashing, as well as file manipulation. By the end of this book, you'll have built up an impressive portfolio of projects and armed yourself with the skills you need to tackle Python projects in the real world.
Table of Contents (12 chapters)
Python Fundamentals
Preface

Custom Exceptions


Built-in exceptions cover a wide range of situations. Sometimes, however, you may need to define a custom exception to fit your specific application situation; for example, a RecipeNotValidError exception for when a recipe is not valid in your cooking app.

In this case, Python contains the ability to add custom errors by extending the base Exception class.

Implementing Your Own Exception Class

Exceptions should be named with names ending with the word Error. Let's create the RecipeNotValidError we talked about previously as a custom exception:

class RecipeNotValidError(Exception):
    def __init__(self):
        self.message = "Your recipe is not valid"

try:
    raise RecipeNotValidError
except RecipeNotValidError as e:
    print(e.message)

The custom exception class should just contain a few attributes that will help the user get more information about what error occurred. Our sample implementation has the message attribute, which we have used to get details on the error message...