实现思路
- 定义
MyError
类,继承自 Exception
类。
- 提供构造函数,使其能够接受
ThirdPartyError1
或 ThirdPartyError2
类型的错误对象,并将其内部状态存储起来。
- 实现方法将
MyError
转换回 ThirdPartyError1
或 ThirdPartyError2
。
- 在错误处理流程中,捕获
ThirdPartyError1
和 ThirdPartyError2
,将其转换为 MyError
进行统一处理。
关键代码片段(Python 示例)
class ThirdPartyError1(Exception):
pass
class ThirdPartyError2(Exception):
pass
class MyError(Exception):
def __init__(self, original_error=None):
self.original_error = original_error
if isinstance(original_error, ThirdPartyError1):
self.message = f"Converted from ThirdPartyError1: {str(original_error)}"
elif isinstance(original_error, ThirdPartyError2):
self.message = f"Converted from ThirdPartyError2: {str(original_error)}"
else:
self.message = "MyError"
super().__init__(self.message)
def to_third_party_error(self):
return self.original_error
try:
# 假设这里调用第三方库代码,可能引发 ThirdPartyError1 或 ThirdPartyError2
raise ThirdPartyError1("Some error from ThirdParty1")
except ThirdPartyError1 as e:
my_error = MyError(e)
# 统一处理 MyError
print(f"Handling MyError: {my_error}")
except ThirdPartyError2 as e:
my_error = MyError(e)
# 统一处理 MyError
print(f"Handling MyError: {my_error}")
说明
MyError
类的构造函数接受一个 original_error
参数,如果传入 ThirdPartyError1
或 ThirdPartyError2
,会根据类型设置相应的错误信息。
to_third_party_error
方法用于将 MyError
转换回原始的第三方错误类型。
- 在
try - except
块中,捕获第三方错误并转换为 MyError
进行统一处理。具体实现可能因编程语言不同而有所差异,但思路大致相同。