跳转至

错误处理

littledl 如何处理错误和异常。

异常类型

DownloadException

所有下载相关错误的基础异常。

from littledl import DownloadException

try:
    path = download_file_sync("https://example.com/file.zip")
except DownloadException as e:
    print(f"下载失败: {e}")

NetworkError

网络相关错误(连接超时、DNS 失败等)。

from littledl import NetworkError

try:
    path = download_file_sync("https://example.com/file.zip")
except NetworkError as e:
    print(f"网络错误: {e}")

AuthenticationError

认证失败。

from littledl import AuthenticationError

try:
    path = download_file_sync("https://example.com/protected.zip", config=config)
except AuthenticationError as e:
    print(f"认证失败: {e}")

FileExistsError

文件已存在且 overwrite 设置为 False

from littledl import FileExistsError

try:
    path = download_file_sync("https://example.com/file.zip", overwrite=False)
except FileExistsError as e:
    print(f"文件已存在: {e}")

重试配置

为失败的下载配置自动重试。

from littledl import DownloadConfig, RetryConfig, RetryMode

retry = RetryConfig(
    enabled=True,
    mode=RetryMode.EXPONENTIAL,
    max_retries=3,
    initial_delay=1.0,
    max_delay=60.0,
)

config = DownloadConfig(retry=retry)

验证错误

URL 验证

下载前始终验证 URL:

from urllib.parse import urlparse

def validate_url(url: str) -> bool:
    parsed = urlparse(url)
    return parsed.scheme in ('http', 'https')

if not validate_url(url):
    raise ValueError("无效的 URL")

文件大小限制

设置最大文件大小以防止过度下载:

from littledl import DownloadConfig

config = DownloadConfig(
    max_file_size=100 * 1024 * 1024,  # 100MB
)