Error Handling & Logging in Python
In Python software development, various types of errors will be encountered, such as syntax errors, logic errors and runtime errors.
Syntax errors usually occur in the early stages of program development and are caused by incorrect syntax. Syntax errors are easily discovered when compiling a program.
Logical errors are caused by improper logic implementation, such as a program accessing an unsorted list but assumes that it is sorted. Logical errors are one of the most difficult types of errors to track.
Runtime errors are common errors, usually occur because all boundary situations are not considered. For example, try to access a file that does not exist.
This tutorial will explain how to deal with errors in Python and how to log error logs to better understand problems in your application. We will cover the following topics:
- Use
try
andexcept
to handle exceptions - Multiple exception handling
-
finally
Sentence - Custom exception
- Python logging
- Get stack trace information
Python exception handling
Let's start with a simple Python addition program. The program takes two parameters as input and prints their sum:
def addNumbers(a, b): print(a + b) addNumbers(5, 10)
Run the above program and the sum of the two numbers will be printed.
Creating custom exception classes can improve the readability and maintainability of your program. For example, suppose there is a program that needs to ensure that the discount price of the item is not higher than the sales price, we can create a custom exception for this type of error:
class PriceError(Exception): pass
Then, add exception handling to the program:
def discount(price, discounted_price): if discounted_price > price: raise PriceError else: print("Discount applied")
In the above code, if discounted_price
is greater than price
, an exception will be raised. PriceError
Python logging
Python's module provides a mechanism to record program running information, including error messages. We can set different log levels such as DEBUG, INFO, WARNING, ERROR, and CRITICAL. The following code snippet shows how to record information using the logging
module: logging
import logging # 初始化日志设置 logging.basicConfig(filename='app.log', level=logging.INFO) try: # ...你的代码... except Exception as e: logging.exception(str(e))
Get stack trace information
In the example above, there is only one program file, so it is easy to find where the error occurred. However, it is particularly important to get the wrong stack trace information when multiple program files are involved. You can use the method to record the stack trace information of the exception, as shown below: logging.exception()
import logging # 初始化日志设置 logging.basicConfig(filename='app.log', level=logging.INFO) try: filePointer = open('appFile', 'r') try: content = filePointer.readline() finally: filePointer.close() except IOError as e: logging.exception(str(e))
Summary
This tutorial introduces the basic methods of Python error handling and logging, including the use of try
, except
and finally
statements and the application of logging
modules. It is recommended to read the official documentation for more detailed information.
This document has been updated and contains contributions from Esther Vaati. Esther is a software developer and contributor to Envato Tuts.
The above is the detailed content of Error Handling & Logging in Python. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

Fastapi ...

Using python in Linux terminal...

Understanding the anti-crawling strategy of Investing.com Many people often try to crawl news data from Investing.com (https://cn.investing.com/news/latest-news)...
