errors.py
ultralytics\utils\errors.py
目录
2.class HUBModelError(Exception):
1.所需的库和模块
# Ultralytics YOLO 🚀, AGPL-3.0 license
from ultralytics.utils import emojis
2.class HUBModelError(Exception):
# 这段代码定义了一个名为 HUBModelError 的自定义异常类,它继承自 Python 的内置 Exception 类。这个异常类用于处理与模型相关的错误,特别是当模型无法在模型库(如 Ultralytics HUB)中找到时。
# 类定义。
class HUBModelError(Exception):
# 自定义异常类,用于处理与 Ultralytics YOLO 中的模型获取相关的错误。
# 当未找到或无法检索请求的模型时,会引发此异常。
# 该消息还经过处理以包含表情符号,以获得更好的用户体验。
# 属性:
# 消息(str):引发异常时显示的错误消息。
# 注意:
# 该消息通过“ultralytics.utils”包中的“emojis”函数自动处理。
"""
Custom exception class for handling errors related to model fetching in Ultralytics YOLO.
This exception is raised when a requested model is not found or cannot be retrieved.
The message is also processed to include emojis for better user experience.
Attributes:
message (str): The error message displayed when the exception is raised.
Note:
The message is automatically processed through the 'emojis' function from the 'ultralytics.utils' package.
"""
# 初始化方法。
# 1.message :一个字符串,提供了异常的默认错误消息,提示用户模型未找到,并建议检查模型 URL 并重试。
def __init__(self, message="Model not found. Please check model URL and try again."): # 未找到模型。请检查模型 URL 并重试。
# 当找不到模型时创建一个异常。
"""Create an exception for when a model is not found."""
# 调用父类初始化方法。
# 调用 Exception 类的初始化方法,并将 emojis(message) 作为参数传递。这里 emojis 是一个函数,用于在错误消息中添加表情符号,以提供更友好的用户提示。
# def emojis(string=""):
# -> 确保传入的字符串在不同操作系统平台上能够安全地显示,特别是在不支持复杂字符(如表情符号)的平台上。返回处理过的字符串。如果操作系统是 Windows,返回处理过的字符串,否则直接返回原始字符串。
# -> return string.encode().decode("ascii", "ignore") if WINDOWS else string
super().__init__(emojis(message))
# 通过定义 HUBModelError ,你可以提供更具体的错误处理和更友好的用户反馈,使得在模型加载失败时更容易诊断问题。