Advanced Python Concepts: Object Oriented Programming and Error Handling