未提供项目描述
项目描述
gqylpy 异常
在
raise语句的同时创建异常类,不需要执行预先定义类,方便的例子,你想抛出一个名为的,然后直接导入NotUnderstandError异常即可。import gqylpy_exception as geraise ge.NotUnderstandError
gqylpy-exception还提供了两个处理异常的装饰器:
TryExcept: 截获被装饰的函数中触发的异常。将异常信息输出到终端,而不是抛出。Retry: 同上,并会尝试重新执行,通过参数多次控制异常,在达到后多次抛出异常。
pip3 install gqylpy_exception
使用gqylpy_exception创建异常类
import gqylpy_exception as ge
raise ge.AnError(...)
gqylpy_exception可以创建异常类。AnError不是gqylpy_exception内置的,它是在你的代码执行到ge.
创建时的,魔化方法__getattr__的特性。你还可以使用魔法方法__getitem__获得它:
e: ge.GqylpyError = ge['AnError'](...)
是的,使用gqylpy_exception创建的异常类都继承GqylpyError,GqylpyError继承包含的Exception。
还有一种用法,导入即创建:
from gqylpy_exception import AnError
raise AnError(...)
另外,gqylpy_exception不会创建重复的异常类,创建过的异常类将重新存入ge.__history__字典,当你创建时从这个字典中取值。
使用装饰器TryExcept处理函数中的异常
from gqylpy_exception import TryExcept
@TryExcept(ValueError)
def func():
int('a')
当然,也可以通过处理流程将异常文件输出到终端。当然,也可以通过控制:
def TryExcept(
etype: Union[type, tuple],
*,
ignore: bool = False,
output_raw_exc: bool = False,
logger: logging.Logger = None,
ereturn: Any = None,
ecallback: Callable = None,
eexit: bool = False
):
...
etype
异常使用元参数要处理多个。
参数ingore
设置True将静默处理异常,没有任何输出。
参数output_raw_exc
设置True将输出完整的异常信息,注意其优先级成绩ignore。
参数logger
接收日志记录器对象,TryExcept希望使用日志记录器输出异常信息,它使用日志记录器的error日志记录器
对象sys.stderr。
如果被装饰的函数中使用参数ereturn
出现
异常,将返回此None默认值。None
ecallback
接收一个接收对象的函数,如果被装饰的函数中调用了参数参数
,将调用
这个参数。还可以调用对象的多个:可调用对象的所有对象,被装饰的对象的所有函数。
参数eexit
设置将在出现True异常后SystemExit(4),如果有ecallback先执行ecallback。
使用装饰Retry器重拨号试中的异常
from gqylpy_exception import Retry
@Retry(count=3, cycle=1)
def func():
int('a')
被装饰的功能中出现了类似的装饰异常,会尝试重新执行的功能,默认Exception试试及其子类的所有Retry(count=3, cycle=1)。 :
def Retry(
etype: Union[type, tuple] = Exception,
*,
count: int = inf,
cycle: Union[int, float] = 0,
ignore: bool = False,
output_raw_exc: bool = False,
logger: logging.Logger = None,
):
...
Retry继承TryExcept,你可以在其中TryExcept找到参数说明,但注意Retry调用日志记录器的warning方法。
结合TryExcept使用,既能重试异常又能处理异常:
from gqylpy_exception import TryExcept, Retry
@TryExcept(ValueError)
@Retry(count=3, cycle=1)
def func():
int('a')
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
gqylpy_exception -1.1.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 98983024a97b0c656afa629ea0a7164c393b237a0da81d8a69ec1f07711f2ee2 |
|
| MD5 | 7a5f44bfbba03d294ffbaf786d4432d0 |
|
| 布莱克2-256 | af25f2a58e01602c70d34e47fc16d3f673c4f96a792d6aaa7f81d9e856244f1c |
gqylpy_exception -1.1.2-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6246ba5eba194b8348b3aa41a3483f0281bcbeb6b7be6a6482b9e5add6e85cc2 |
|
| MD5 | c4b7124b1330a3f85ebe79abd4dcbcd8 |
|
| 布莱克2-256 | 73ef820ca0e3b4811f03ef237d46f089450f827a9a71f91bf3d631c7cecc0055 |