O'Reilly logo
live online training icon Live Online training

Beyond Python Scripts: Exceptions, Error Handling and Command-Line Interfaces

Developing complex applications

Aaron Maxwell

Large-scale applications need intelligent error management, better automation, and a different approach compared to smaller scripts. Otherwise, the whole effort collapses under crushing complexity.

Join expert Pythonista Aaron Maxwell to master key features for successful, graceful, and effective development of large-scale software. You'll gain exposure to tools for writing and modifying larger Python applications quickly and efficiently—without getting bogged down in those complex, baffling bugs that take all day to fix—as you learn how to leverage Python’s rich error model and increase the value of any program through Pythonic command-line UX. And in a bonus section, Aaron takes you through Python’s lesser-known advanced collection types.

Special note: _This course is paired with Python for applications: Logging, modules, and dependency management. Although these courses are designed to be taken in either order, we suggest you take that course first for best results. _

What you'll learn-and how you can apply it

  • The different needs of robust, mission-critical Python applications compared to one-shot scripts
  • How to successfully develop increasingly complex software so it doesn't collapse under its own complexity
  • Principles of writing Python for easier automation and code reuse
  • Python’s mechanisms for error management and delegation of error handling

And you’ll be able to:

  • Leverage Pythonic features to improve reliability, maintainability, and robustness
  • Organize your codebase so it can be worked on by a team of developers in parallel
  • Write more powerful Python code, packaged in ways more easily reusable by other developers
  • Use higher-level abstractions to produce reusable code and reduce complexity and errors
  • Write Python code that’s concise, readable, and highly maintainable
  • Advise your teammates on potently powerful Python patterns and crucial best practices

This training course is for you because...

  • You’re a web developer ready to take on more complex and extensive web applications.
  • You’re a QA engineer who wants to develop robust, higher-level test automation frameworks.
  • You’re a data scientist ready to build sophisticated and reliable data engineering applications.
  • You’re a tech lead or engineering manager who wants to improve code reuse and organization within your team and increase the velocity of your sprints.
  • You want to improve your Python knowledge to ace an interview and land that dream job.
  • You’re a software engineer who cares about robust, reliable, and maintainable code and wants to see a wider positive impact from your coding efforts.


  • Complete the Python Labs Prep
  • Experience writing Python scripts and small programs for practical work situations
  • Basic mastery of Python data structures (like dicts and lists) and writing simple classes in Python
  • Experience writing mid-sized and larger applications in any language (useful but not required)

Materials or downloads needed in advance:

  • A machine with Python 3.6+ (recommended) or Python 2.7 installed

Recommended preparation:

Introduction to Python (video) Intermediate Python: Introduction (video)

Recommended follow-up:

Python Cookbook, 3rd edition (book) Become Fluent in Python (Learning Path)

About your instructor

  • Aaron Maxwell is author of the book "Powerful Python: The Most Impactful Patterns, Features, and Development Strategies Modern Python Provides." As a software engineer, he has worked in devops, test automation, and machine learning, and now divides his time between coding, writing, and teaching


The timeframes are only estimates and may vary according to how the class is progressing

  • Python's exception model
  • Exception patterns and anti-patterns
  • The most diabolical Python anti-pattern. . .and how to avoid it
  • Building command-line programs
  • Bonus section: Advanced collection types