ubuntu

Ubuntu Python异常怎么处理

小樊
38
2025-11-28 19:58:37
栏目: 编程语言

Ubuntu 下 Python 异常处理与排查指南

一 基本语法与执行方式

示例

try:
    x = int(input("请输入整数: "))
    result = 10 / x
except ValueError:
    print("输入不是整数")
except ZeroDivisionError:
    print("除数不能为 0")
else:
    print(f"结果是: {result}")
finally:
    print("处理结束")

要点

二 常见场景与处理建议

示例 文件与网络

# 文件
import logging
logging.basicConfig(level=logging.ERROR)

try:
    with open("data.txt", "r") as f:
        content = f.read()
except FileNotFoundError:
    logging.error("文件未找到")
except PermissionError:
    logging.error("无权限读取文件")

# 网络
import requests
try:
    r = requests.get("https://example.com", timeout=5)
    r.raise_for_status()
except requests.exceptions.HTTPError as e:
    logging.error(f"HTTP 错误: {e}")
except requests.exceptions.ConnectionError:
    logging.error("连接失败")
except requests.exceptions.Timeout:
    logging.error("请求超时")
except requests.exceptions.RequestException as e:
    logging.error(f"请求异常: {e}")

要点

三 调试与日志记录

示例

import logging, pdb

logging.basicConfig(level=logging.ERROR)

def compute(a, b):
    try:
        return a / b
    except ZeroDivisionError as e:
        logging.error("计算失败: 除数不能为 0 (a=%s, b=%s)", a, b)
        raise  # 继续向上抛出

# 需要时断点调试
# pdb.set_trace()

要点

四 自定义异常与最佳实践

示例 自定义异常

class NegativeValueError(Exception):
    """值不能为负数"""
    def __init__(self, value):
        super().__init__(f"值不能为负数: {value}")
        self.value = value

def check_value(v):
    if v < 0:
        raise NegativeValueError(v)

try:
    check_value(-1)
except NegativeValueError as e:
    print(e)

要点

0
看了该问题的人还看了